如何在开放式人工智能健身房游戏中映射自定义键?

2024-09-22 14:32:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着让CarRacing-v0环境可以由用户使用自定义键来播放,我想我可以使用它实用程序。播放像这样:

import gym
from gym.utils.play import *

play(gym.make("CarRacing-v0"))

它对atari环境很好,但是在这个例子中我得到了

^{pr2}$

所以我想知道如何做这个自定义动作映射? play代码中的注释表示这是一个映射键\u到\u action:dict:tuple(int)->gt;int

atari_env是这样做的:

KEYWORD_TO_KEY = {
            'UP':      ord('w'),
            'DOWN':    ord('s'),
            'LEFT':    ord('a'),
            'RIGHT':   ord('d'),
            'FIRE':    ord(' '),
        }

我知道car_racing脚本是这样做的,它将按键捕捉到一个3元素数组中,并将该值传递给环境步骤. 所以我尝试了一种类似的方法:

KEYWORD_TO_KEY = {'STEER':ord('a'),'GAS':ord('w'),'BREAK':ord('s')}
play.keys_to_action = KEYWORD_TO_KEY

没用。我知道方向盘是错的,但我想我至少能让车转向一个方向。 然后我检查了将关键字重新映射到Atari游戏中的自定义组合。 最初的游戏并不是我的修改。在

你们知道如何正确地做这个自定义键映射吗?在


Tags: tokey用户import游戏play环境action