X-Git-Url: https://git.ctpug.org.za/?p=koperkapel.git;a=blobdiff_plain;f=koperkapel%2Fscenes%2Flevel.py;h=e5d102a265d9772b9095d3915166c1bbf479dceb;hp=a6844663caf020b5ffdafb3d9ad6c470ab677e14;hb=c3d7223fd37b42f88390aa2c299588a10daa9984;hpb=ed7b7dbe49f3962132f0db806552a5873d6fc113 diff --git a/koperkapel/scenes/level.py b/koperkapel/scenes/level.py index a684466..e5d102a 100644 --- a/koperkapel/scenes/level.py +++ b/koperkapel/scenes/level.py @@ -146,7 +146,9 @@ class GameLevelScene(BaseLevelScene): def _can_move(self, x, y): if self._mode == 'walk': - return self._level.can_walk(x, y, self._level_layer) + if not self._level.is_on_enemy(x, y): + return self._level.can_walk(x, y, self._level_layer) + return False elif self._mode == 'fly': return self._level.can_fly(x, y, self._level_layer) elif self._mode == 'crawl': @@ -198,11 +200,22 @@ class GameLevelScene(BaseLevelScene): for item in self._items: item.pos = self.calc_offset( item.game_pos[0] * TILE_SIZE, item.game_pos[1] * TILE_SIZE) + self._check_enemies() + for enemy in self._enemies: + enemy.pos = self.calc_offset( + enemy.game_pos[0] * TILE_SIZE, enemy.game_pos[1] * TILE_SIZE) more = self._check_held_keys(dt) if more: events.extend(more) return events + def _check_enemies(self): + if len(self._level.enemies) != len(self._enemies): + # New nemy has spawned + for enemy in self._level.enemies: + if enemy not in self._enemies: + self._enemies.add(enemy) + def _check_held_keys(self, dt): for key in self._held_keys: self._last_key_down += dt