pygame - 《Python编程:从入门到实践》第十二章,外星人入侵实例中无法获取键盘按键和退出游戏
PHP中文网
PHP中文网 2017-04-18 10:17:36
0
1
935

game_functions.py

import pygame import sys def check_enents(ship): """响应按键和鼠标事件""" for event in pygame.event.get(): if event == pygame.QUIT: sys.exit() elif event == pygame.KEYDOWN: if event == pygame.K_d: ship.rect.centerx+=10 def update_screen(ai_settings,screen,ship): """更新屏幕上的图像""" # 重绘屏幕 screen.fill(ai_settings.bg_color) ship.blitme() pygame.display.flip()

alien_invasion.py

import pygame from settings import Settings from ship import Ship import game_functions as gf def run_game(): # 初始化游戏,创建屏幕对象 pygame.init() ai_settings=Settings() # 创建设置实例 screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) ship=Ship(screen) pygame.display.set_caption("Alien Invasion") # 开始游戏主循环 while True: gf.check_enents(ship) gf.update_screen(ai_settings,screen,ship) run_game()

只能强行终止进程,按红叉无法退出,按d后也没办法向右移动,代码和书上基本一样,求教是哪里错了,和OS X系统有关系么?

PHP中文网
PHP中文网

认证0级讲师

모든 응답 (1)
Peter_Zhu

문제를 발견했습니다. pygame.QUIT와 pygame.KEYDOWN 모두 event.tpye를 사용해야 합니다. pygame.K_d는 키보드를 눌렀을 때 d를 의미하므로 event.key를 사용해야 합니다. 책에 써있었는데 무심코 무시했네요...

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!