Added support for frame-outputs (for video recording)
This commit is contained in:
parent
6c4c9e0fdd
commit
3311d1501b
@ -71,6 +71,8 @@ class ColumbusEnv(gym.Env):
|
||||
if self.visible:
|
||||
self.screen = pygame.display.set_mode(
|
||||
(self.width, self.height))
|
||||
else:
|
||||
self.screen = pygame.Surface((self.width, self.height))
|
||||
pygame.display.set_caption(self.title)
|
||||
|
||||
def _limit_to_unit_circle(self, coords):
|
||||
@ -209,11 +211,11 @@ class ColumbusEnv(gym.Env):
|
||||
entity.draw()
|
||||
|
||||
def _draw_observable(self, forceDraw=False):
|
||||
if (self.draw_observable or forceDraw) and self.visible:
|
||||
if self.draw_observable and (self.visible or forceDraw):
|
||||
self.observable.draw()
|
||||
|
||||
def _draw_joystick(self, forceDraw=False):
|
||||
if (self.draw_joystick or forceDraw) and self.visible:
|
||||
if self.draw_joystick and (self.visible or forceDraw):
|
||||
x, y = self.inp
|
||||
bigcol = (100, 100, 100)
|
||||
smolcol = (100, 100, 100)
|
||||
@ -225,7 +227,7 @@ class ColumbusEnv(gym.Env):
|
||||
self.joystick_offset[0], 20+int(60*y)+self.joystick_offset[1]), 20, width=0)
|
||||
|
||||
def _draw_confidence_ellipse(self, chol, forceDraw=False, seconds=1):
|
||||
if (self.draw_confidence_ellipse or forceDraw) and self.visible:
|
||||
if self.draw_confidence_ellipse and (self.visible or forceDraw):
|
||||
col = (255, 255, 255)
|
||||
f = seconds/self.speed_fac
|
||||
|
||||
@ -304,15 +306,17 @@ class ColumbusEnv(gym.Env):
|
||||
else:
|
||||
self.agent.draw()
|
||||
self._rendered = True
|
||||
if dont_show:
|
||||
if mode == 'human' and dont_show:
|
||||
return
|
||||
self.screen.blit(self.surface, (0, 0))
|
||||
self._draw_observable()
|
||||
self._draw_joystick()
|
||||
self._draw_observable(forceDraw=mode != 'human')
|
||||
self._draw_joystick(forceDraw=mode != 'human')
|
||||
if chol != None:
|
||||
self._draw_confidence_ellipse(chol)
|
||||
if self.visible:
|
||||
self._draw_confidence_ellipse(chol, forceDraw=mode != 'human')
|
||||
if self.visible and mode == 'human':
|
||||
pygame.display.update()
|
||||
if mode != 'human':
|
||||
return pygame.surfarray.array3d(self.screen)
|
||||
|
||||
def close(self):
|
||||
pygame.display.quit()
|
||||
|
Loading…
Reference in New Issue
Block a user