在我的 game_function 中出现的错误,直接在 check-events
中加入按 q 退出选项就会出现这个报错,但是放在 check-down
中却提示这个错误
game——function:
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)
elif event.key==pygame.K_q:
sys.exit()
def fire_bullet(ai_settings, screen, ship, bullets):
if len(bullets)<ai_settings.bullets_allowed:
new_bullet = Bullet(ai_settings, screen, ship)
bullets.add(new_bullet)
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(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_w:
sys.exit()
def update_screen(ai_settings, screen, ship, bullets):
screen.fill(ai_settings.bg_color)
for bullet in bullets.sprites():
bullet.draw_bullet()
ship.blitme()
pygame.display.flip()
def update_bullets(bullets):
bullets.update()
for bullet in bullets.copy():
if bullet.rect.bottom<=0:
bullets.remove(bullet)
按 w 就提示:
Event' object has no attribute 'key'
是不是应该改成: