projects
/
koperkapel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Very hacky bullets.
[koperkapel.git]
/
koperkapel
/
scenes
/
level.py
diff --git
a/koperkapel/scenes/level.py
b/koperkapel/scenes/level.py
index ea32bc1eaa63107850cb9c3b82e79f22cc8a63e1..53d370f1d0f0aaeee9fe0e3e0a4d8d3a6db91b05 100644
(file)
--- a/
koperkapel/scenes/level.py
+++ b/
koperkapel/scenes/level.py
@@
-31,6
+31,7
@@
class BaseLevelScene(Scene):
self._overlay = self._surfaces['floor'].copy()
self._doors = self.actors.add_layer("doors", level=9)
self._keypads = self.actors.add_layer("keypads", level=8)
self._overlay = self._surfaces['floor'].copy()
self._doors = self.actors.add_layer("doors", level=9)
self._keypads = self.actors.add_layer("keypads", level=8)
+ self._bullets = self.actors.add_layer("bullets", level=10)
# These are already Actors
for door in self._level.doors:
self._doors.add(door)
# These are already Actors
for door in self._level.doors:
self._doors.add(door)
@@
-194,13
+195,19
@@
class GameLevelScene(BaseLevelScene):
self._level.remove_enemy(enemy)
self._enemies.remove(enemy)
self._level.remove_enemy(enemy)
self._enemies.remove(enemy)
+ def _fire_bullet(self, bullet, pos, dp):
+ if len(self._bullets) >= 10:
+ return
+ bullet.game_pos = pos
+ self._bullets.add(bullet)
+
@defer_to_update
def _fire_weapon(self, world):
weapon = weapon_by_name(world.weapons.current)
weapon.play_sound()
if weapon.bullet_range > 0:
@defer_to_update
def _fire_weapon(self, world):
weapon = weapon_by_name(world.weapons.current)
weapon.play_sound()
if weapon.bullet_range > 0:
- # ranged, fire bullet
-
print("Pew."
)
+ self._fire_bullet(
+
weapon.assemble_bullet(), self._player_pos, self._angle_dp
)
else:
# melee
pos, dp = self._player_pos, self._angle_dp
else:
# melee
pos, dp = self._player_pos, self._angle_dp
@@
-228,6
+235,10
@@
class GameLevelScene(BaseLevelScene):
for enemy in self._enemies:
enemy.pos = self.calc_offset(
enemy.game_pos[0] * TILE_SIZE, enemy.game_pos[1] * TILE_SIZE)
for enemy in self._enemies:
enemy.pos = self.calc_offset(
enemy.game_pos[0] * TILE_SIZE, enemy.game_pos[1] * TILE_SIZE)
+ for bullet in self._bullets:
+ bullet.pos = self.calc_offset(
+ bullet.game_pos[0] * TILE_SIZE + (TILE_SIZE // 2),
+ bullet.game_pos[0] * TILE_SIZE + (TILE_SIZE // 2))
more = self._check_held_keys(dt)
if more:
events.extend(more)
more = self._check_held_keys(dt)
if more:
events.extend(more)