在如下代码中我遇到了问题,我按空格键不见反应
还有不知道怎么修改is_game_over属性设置为True,能使测试游戏结束后使用空格开始游戏的功能达到
在学这本Python快速入门/黑马程序员编著. --2版 --北京:人民邮电出版社,2021.1(2024.1重印)工业化和信息化“十三五”人才培养规划教材ISBN 987-7-115-54752-1
第11章 飞机大战(完整版)11.3.2 游戏框架实现P178~P180 遇到了问题
game_items模块中
import pygame
from pygame.examples.sprite_texture import clock
# 游戏窗口区域(矩形区域)
SCREEN_RECT=pygame.Rect(0,0,480,700)
game模块中
import pygame
from game_items import *
from game_hud import *
from game_music import *
class Game(object):
"""游戏类"""
def __init__(self):
# 游戏主窗口
self.main_window = pygame.display.set_mode(SCREEN_RECT.size)
pygame.display.set_caption("飞机大战")
# 游戏状态属性
self.is_game_over = False # 游戏结束标记
self.is_pause = False # 游戏暂停标记
def reset_game(self):
"""重置游戏"""
self.is_game_over = False # 游戏结束标记
self.is_pause = False # 游戏暂停标记
def event_handler(self):
"""事件监听
:return: 如果监听到退出事件,返回 True,否则返回 False
"""
for event in pygame.event.get():
if event.type == pygame.QUIT:
return True
elif event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
return True
elif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
if self.is_game_over: # 游戏已经结束
self.reset_game() # 重新开始游戏
else:
self.is_pause = not self.is_pause # 切换到暂停状态
return False
def start(self):
"""开始游戏"""
clock = pygame.time.Clock() # 游戏时钟
while True: # 开启游戏循环
if self.event_handler(): # 事件监听
return
# 判断游戏状态
if self.is_game_over:
print("游戏已经结束,按空格键重新开始...")
elif self.is_pause:
print("游戏已经暂停,按空格键继续...")
else:
print("游戏进行中...")
pygame.display.update() # 更新显示
clock.tick(60) # 设置刷新频率
if __name__ == '__main__':
pygame.init()
Game().start()
pygame.quit()
我想要运行游戏,不断按下空格键,看到控制台中有关游戏状态提示文字的显示及变化。执行的提示信息如下:
游戏进行中...
游戏已经暂停,按空格键继续...
游戏进行中...
我的暂停不了,控制台一直显示‘游戏进行中...’是哪里出了问题?该怎么改?
在需要测试游戏结束后使用空格键重新开始游戏的功能,可以先将构造方法的is_game_over属性暂时设置为True,再进行测试
我问is_game_over出现了几次,但不知道改哪个,把哪个改为True?