我使用 pygame 在 python3 中制作游戏,我的游戏逻辑发生在
run
循环中。
我的问题是如何在不使用嵌套类和循环的情况下重新启动游戏,如下例所示?
我担心当玩家死亡足够多时,这段代码会使用太多内存,但也许我对这段代码的理解是错误的? (我假设,当玩家每次创建新的
game
类时都会死亡,新变量也是如此。
class Game:
def init:
#code goes here
def run(self,deathcount):
while self.running==True:
#code goes here
if player dies
deathcount+=1
game = Game()
self.running=False
game.run(death_count)
if name == "main":
game = Game()
game.run(death_count=0)
一般方法是有一个外循环。只要游戏没有终止,外循环就会运行。在循环中,创建
Game
对象并执行应用程序循环:
class Game:
def __init__(self):
# [...]
def run(self, death_count):
quit_game = False
game_over = False
while not quit_game and not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit_game = True
# [...]
if player_dies:
game_over = True
return quit_game
if name == "main":
death_count = 0
quit_game = False
while not quit_game:
game = Game()
quit_game = game.run(death_count)
death_count += 1