运行的时候出现这个问题:
相关代码如下:
alien__invasion.py
settings.py
ship.py
game__functions.py
import sys
import pygame
from bullet import Bullet
def check_keydown_events(event,ai_settings,screen,ship,bullets):
#响应按键
if event.key == pygame.K_RIGHT:
ship.moving_right = True
elif event.key == pygame.K_LEFT:
ship.moving_left = True
elif event.key == pygame.K_SPACE:
fire_bullet(ai_settings,screen,ship,bullets)
def check_keyup_events(event,ship):
#响应松开
if event.key == pygame.K_RIGHT:
ship.moving_right = False
elif event.key == pygame.K_LEFT:
ship.moving_left = False
def check_events(event,ai_settings,screen,ship,bullets):
#响应按键和鼠标操作
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
check_keydown_events(event,ai_settings,screen,ship,bullets)
elif event.type == pygame.KEYUP:
check_keyup_events(event,ship)
elif event.key == pygame.K_q:
sys.exit()
def update_screen(ai_settings,screen,ship,alien,bullets):
#更新屏幕上的图像
#每次循环时都重绘屏幕
screen.fill(ai_settings.bg_color)
for bullet in bullets:
bullet.draw_bullet()
ship.blitme()
alien.blitme()
#让最近绘制的屏幕可见
pygame.display.flip()
def update_bullets(bullets):
#更新子弹的位置
bullets.update()
#删除已消失的子弹
for bullet in bullets.copy():
if bullet.rect.bottom <= 0:
bullets.remove(bullet)
def fire_bullet(ai_settings,screen,ship,bullets):
#创建一颗子弹,并将其加入到编组bullet中
if len(bullets) < ai_settings.bullets_allowed:
new_bullet = Bullet(ai_settings,screen,ship)
bullets.add(new_bullet)
bullets.py
alien.py