在游戏循环中,如何使用嵌套类或循环正确重新启动游戏?

问题描述 投票:0回答:1

我使用 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)
python loops class pygame nested
1个回答
1
投票

一般方法是有一个外循环。只要游戏没有终止,外循环就会运行。在循环中,创建

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
© www.soinside.com 2019 - 2024. All rights reserved.