這是一個用pygame制作的打飛機游戲,目前只繪制了飛機和子彈
部分代碼已省略
主函式:
bullets=pygame.sprite.Group()
while True:
gf.check_events(ai_settings,screen,ship,bullets)
ship.update()
bullets.update()
gf.update_screen(ai_settings,screen,ship,bullets)
Bullet類:
bullet.py
class Bullet(Sprite):
"""一個對飛船發射的子彈進行管理的類"""
def __init__(self,ai_settings,screen,ship):
"""在飛船所處的位置創建一個子彈物件"""
super().__init__()
self.screen=screen
def draw_bullet(self):
"""在螢屏上繪制子彈"""
pygame.draw.rect(self.screen,self.color,self.rect)
gf.py:
#回應按鍵
def check_keydown_events(event,ai_settings,screen,ship,bullets):
# 創建子彈,并將其加入到編組bullets中
#這里我創建了2個子彈
new_bullet=Bullet(ai_settings, screen, ship)
bullets.add(new_bullet)
print(bullets)
new_bullet2 = Bullet(ai_settings, screen, ship)
bullets.add(new_bullet2)
print(bullets)
#更新螢屏上的圖形,并切換到新螢屏
def update_screen(ai_settings,screen,ship,bullets):
# 重繪所有子彈
for bullet in bullets.sprites():
bullet.draw_bullet()
問題:1.玩家按空格鍵時,會創建并添加新子彈實體到bullets編組中,然后在update_screen函式中繪制子彈。 該方法將遍歷編組中的精靈,并對每個精靈都呼叫draw_bullet().既然是遍歷,為什么每次按空格都只生成一顆子彈而不是遞增數目的子彈
2.我設定為了每次按鍵創建2個實體,但是為什么實際還是只會繪制1顆?
求大神解答
uj5u.com熱心網友回復:
這不是python編程從入門到實踐里面的嗎轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/245368.html
上一篇:perl手動安裝make出現問題
下一篇:python天天向上續
