projects
/
koperkapel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Enemies appear
[koperkapel.git]
/
koperkapel
/
scenes
/
level.py
diff --git
a/koperkapel/scenes/level.py
b/koperkapel/scenes/level.py
index a6844663caf020b5ffdafb3d9ad6c470ab677e14..e5d102a265d9772b9095d3915166c1bbf479dceb 100644
(file)
--- 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':
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':
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)
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
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
def _check_held_keys(self, dt):
for key in self._held_keys:
self._last_key_down += dt