第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

外星人入侵 - Pygame - 外星人走出屏幕

外星人入侵 - Pygame - 外星人走出屏幕

波斯汪 2024-01-16 10:47:15
我正在根據(jù) Python 速成課程書制作外星人入侵游戲項(xiàng)目,并陷入了外星人艦隊?wèi)?yīng)該向右行駛直到到達(dá)屏幕右邊緣、改變方向并向左行駛等部分。問題是我的外星人確實(shí)改變了方向,但只有當(dāng)方塊中的第一個外星人(第一個一直在左邊)擊中屏幕的右邊緣時。他右邊的所有外星人都經(jīng)過了右邊的邊緣。似乎它無法識別右側(cè)外星人的矩形,該矩形應(yīng)該首先擊中右側(cè)邊緣,但只能識別左側(cè)第一個外星人的矩形......我嚴(yán)格按照書上的說明進(jìn)行操作,并且檢查了 3 次,問題可能出在哪里。你能幫我找出問題所在嗎?settings.pyclass Settings:? ? """A class to store all settings for Alien Invasion."""? ? def __init__(self):? ? ? ? """Initialize the game's settings."""? ? ? ? # Screen settings? ? ? ? self.screen_width = 1200? ? ? ? self.screen_height = 800? ? ? ? self.bg_color = (230, 230, 230)? ? ? ? self.ship_speed = 1.5? ? ? ? # Bullet settings? ? ? ? self.bullet_speed = 1.0? ? ? ? self.bullet_width = 3? ? ? ? self.bullet_height = 15? ? ? ? self.bullet_color = (60, 60, 60)? ? ? ? self.bullets_allowed = 3? ? ? ? # Alien settings? ? ? ? self.alien_speed = 1.0? ? ? ? self.fleet_drop_speed = 10? ? ? ? # fleet_direction of 1 represents right; -1 represents left.? ? ? ? self.fleet_direction = 1alien.pyimport pygamefrom pygame.sprite import Spriteclass Alien(Sprite):? ? """A class to represent a single alien in the fleet."""? ? def __init__(self, ai_game):? ? ? ? """Initialize the alien and set its starting postion."""? ? ? ? super().__init__()? ? ? ? self.screen = ai_game.screen? ? ? ? self.settings = ai_game.settings? ? ? ? # Load the alien image and set its rect attribute.? ? ? ? self.image = pygame.image.load('images/alien.bmp')? ? ? ? self.rect = self.image.get_rect()? ? ? ? # Start each new alien near the top left of the screen.? ? ? ? self.rect.x = self.rect.width? ? ? ? self.rect.y = self.rect.height? ? ? ? # Store the alien's exact horizontal position.? ? ? ? self.x = float(self.rect.x)? ? def check_edges(self):? ? ? ? """Return True if an alien is at edge of screen."""? ? ? ? screen_rect = self.screen.get_rect()? ? ? ? if self.rect.right >= screen_rect.right or self.rect.left <= 0:? ? ? ? ? ? return True
查看完整描述

1 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個贊

這是縮進(jìn)的問題。你需要找到第一個撞到邊緣的外星人,然后打破循環(huán)。實(shí)際上,你總是在列表中的第一個敵人之后中斷循環(huán):

class AlienInvasion:

? ? # [...]


? ? def _check_fleet_edges(self):

? ? ? ? """Respond appropriately if any aliens have reached an edge."""

? ? ? ? for alien in self.aliens.sprites():

? ? ? ? ? ? if alien.check_edges():

? ? ? ? ? ? ? ? self._change_fleet_direction()


? ? ? ? ? ? ? ? #-->| INDENTATION

? ? ? ? ? ? ? ? break

? ? ? ? ? ??

? ? ? ? ? ? # break <-- DELETE


查看完整回答
反對 回復(fù) 2024-01-16
  • 1 回答
  • 0 關(guān)注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號