Spaces:
Running on Zero
Running on Zero
| import gymnasium as gym | |
| class Render(gym.Wrapper): | |
| def __init__(self, env, cfg): | |
| super().__init__(env) | |
| self.cfg = cfg | |
| self.env = env | |
| self._size = cfg.render_size | |
| def _get_frame(self): | |
| frame = self.env.render(width=self._size, height=self._size).copy() | |
| if frame.shape[-1] == 3: | |
| frame = frame.transpose(2, 0, 1) | |
| return frame | |
| def reset(self): | |
| obs, info = self.env.reset() | |
| info['frame'] = self._get_frame() | |
| return obs, info | |
| def step(self, action): | |
| obs, reward, terminated, truncated, info = self.env.step(action) | |
| info['frame'] = self._get_frame() | |
| return obs, reward, terminated, truncated, info | |
| def close(self): | |
| self.env.close() | |
| def render(self, *args, **kwargs): | |
| kwargs['height'] = kwargs.get('height', self._size) | |
| kwargs['width'] = kwargs.get('width', self._size) | |
| return self.env.render(*args, **kwargs) | |