【发布时间】:2021-11-26 17:30:11
【问题描述】:
当要求用户重新启动时,我在 pygame 中重置我的游戏时遇到问题。程序是这样构造的:
import board as b
class Gui():
def __init__(self):
pygame.init()
self.gamestate = b.GameState()
def run(self):
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_r:
running = False
pygame.quit()
Gui().run
if __name__ == '__main__':
Gui().run()
当用户尝试重新启动时,会发生 GUI 关闭并且 while 循环按原样退出的情况。然后它会打开一个新窗口,但它没有清除游戏状态,所以我之前运行的游戏状态仍然存在。我认为self.gamestate = b.GameState() 行会为我创建一个新的游戏状态,但事实并非如此。这是板文件中的一个简短的 sn-p:
class GameState:
def __init__(self):
self.board = s.start_position
调用它时,我认为它会将板设置为起始位置并将其所有参数设置为初始位置,但有些地方不对劲,我已经 3 天没能解决这个问题了。我希望你能帮助我如何清除游戏状态并重新开始。
【问题讨论】: