0

我在我的 _render 函数中得到了共同点pygame.error: display Surface quit,如下所示。健身房环境运行,但在大约 10 秒后崩溃。我是 pygame 的新手,所以如果解释了错误会有所帮助。我在这里这里检查过,但答案并不能完全解决我的问题。完整代码在这里。当我通过我的 main.py 文件运行该程序时,该程序使用gym 成功运行,但是当我使用gym_test.py 运行它时,我得到了错误。

主文件

def main():
    game = Frogger(visual=False)

    while True:

        # self.game_data = game.load_sprites()

        action = game.action_space.sample()
        _, _, terminal, _ = game.step(action)

        if terminal:
            game.reset()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()


if __name__ == '__main__':
    main()

健身房测试.py

import gym
import gym_audio
import pygame
env = gym.make('Frogger-v0')

for i_episode in range(20):
    observation = env.reset()
    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            pygame.quit()
            break

渲染.py

 def _render(self, mode='human', close=False):
        self.screen.blit(self.background, (0, 0))

sys.exitfunc 中的错误:回溯(最近一次调用最后一次):文件“/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/atexit.py”,第 24 行,在 _run_exitfuncs func(*targs, **kargs) 文件 "/usr/local/lib/python2.7/site-packages/gym/utils/closer.py",第 67 行,在关闭 closeable.close()文件“/usr/local/lib/python2.7/site-packages/gym/core.py”,第 164 行,关闭 self.render(close=True) 文件“/usr/local/lib/python2.7/ site-packages/gym/core.py”,第 150 行,在渲染中返回 self._render(mode=mode, close=close) 文件“/Users/lusenii/Developer/gym-audio/gym_audio/envs/frogger.py” ,第 82 行,在 _render self.screen.blit(self.background, (0, 0)) pygame.error 中:显示 Surface 退出

4

0 回答 0