fixed agent collision viz. bug

This commit is contained in:
romue
2021-06-09 13:25:47 +02:00
parent 34bf5c2d0c
commit ef51625b6e
2 changed files with 9 additions and 4 deletions

View File

@ -77,12 +77,17 @@ class Renderer:
bp = self.blit_params(entity)
blits.append(bp)
if 'agent' in entity.name and self.view_radius > 0:
visibility_rect = bp['dest'].inflate((self.view_radius*2)*self.cell_size, (self.view_radius*2)*self.cell_size)
visibility_rect = bp['dest'].inflate(
(self.view_radius*2)*self.cell_size, (self.view_radius*2)*self.cell_size
)
shape_surf = pygame.Surface(visibility_rect.size, pygame.SRCALPHA)
pygame.draw.rect(shape_surf, self.AGENT_VIEW_COLOR, shape_surf.get_rect())
shape_surf.set_alpha(64)
blits.appendleft(dict(source=shape_surf, dest=visibility_rect))
agent_state_blits = self.blit_params(Entity(entity.state, (entity.pos[0]+0.11, entity.pos[1]), 0.48, 'scale'))
if entity.state != 'blank':
agent_state_blits = self.blit_params(
Entity(entity.state, (entity.pos[0]+0.11, entity.pos[1]), 0.48, 'scale')
)
blits.append(agent_state_blits)
for blit in blits:

View File

@ -57,7 +57,7 @@ class SimpleFactory(BaseFactory):
print('error')
cols = ' '.join([self._state_slices[j] for j in agent.collisions])
if 'agent' in cols:
return 'agent_collision'
return 'agent_collision', 'blank'
elif not agent.action_valid or 'level' in cols or 'agent' in cols:
return f'agent{agent.i + 1}', 'invalid'
elif self._is_clean_up_action(agent.action):