我在我的 _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 退出