changeset 448:3bc37791f0a2

Make Bullet.state an enum.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Sat, 17 Aug 2013 17:44:11 +0200
parents 78e1c3864e73
children d56536ef28e8
files pytouhou/game/bullet.pxd pytouhou/game/bullet.pyx pytouhou/game/enemy.pyx pytouhou/game/game.pyx
diffstat 4 files changed, 13 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/pytouhou/game/bullet.pxd	Sat Aug 17 06:29:53 2013 +0200
+++ b/pytouhou/game/bullet.pxd	Sat Aug 17 17:44:11 2013 +0200
@@ -2,8 +2,14 @@
 from pytouhou.game.game cimport Game
 from pytouhou.utils.interpolator cimport Interpolator
 
+
+cdef enum State:
+    LAUNCHING, LAUNCHED, CANCELLED
+
+
 cdef class Bullet(Element):
-    cdef public unsigned long state, flags, frame, sprite_idx_offset, damage
+    cdef public State state
+    cdef public unsigned long flags, frame, sprite_idx_offset, damage
     cdef public double dx, dy, angle, speed
     cdef public bint player_bullet, was_visible, grazed
     cdef public object target, _bullet_type
--- a/pytouhou/game/bullet.pyx	Sat Aug 17 06:29:53 2013 +0200
+++ b/pytouhou/game/bullet.pyx	Sat Aug 17 17:44:11 2013 +0200
@@ -18,8 +18,6 @@
 from pytouhou.game.sprite cimport Sprite
 
 
-LAUNCHING, LAUNCHED, CANCELLED = range(3)
-
 cdef class Bullet(Element):
     def __init__(self, pos, bullet_type, unsigned long sprite_idx_offset,
                        double angle, double speed, attributes, unsigned long flags, target, Game game,
--- a/pytouhou/game/enemy.pyx	Sat Aug 17 06:29:53 2013 +0200
+++ b/pytouhou/game/enemy.pyx	Sat Aug 17 17:44:11 2013 +0200
@@ -16,7 +16,7 @@
 
 from pytouhou.vm.anmrunner import ANMRunner
 from pytouhou.game.sprite import Sprite
-from pytouhou.game.bullet import Bullet, LAUNCHED
+from pytouhou.game.bullet cimport Bullet, LAUNCHED
 from pytouhou.game.laser import Laser
 from pytouhou.game.effect cimport Effect
 
--- a/pytouhou/game/game.pyx	Sat Aug 17 06:29:53 2013 +0200
+++ b/pytouhou/game/game.pyx	Sat Aug 17 17:44:11 2013 +0200
@@ -15,8 +15,7 @@
 from pytouhou.vm.msgrunner import MSGRunner
 
 from pytouhou.game.element cimport Element
-from pytouhou.game.bullet cimport Bullet
-from pytouhou.game.bullet import LAUNCHED, CANCELLED
+from pytouhou.game.bullet cimport Bullet, LAUNCHED, CANCELLED
 from pytouhou.game.enemy cimport Enemy
 from pytouhou.game.item cimport Item
 from pytouhou.game.effect cimport Particle
@@ -291,8 +290,10 @@
     cdef void update_msg(self, long keystate) except *:
         cdef long k
 
-        if any([(keystate & k and not self.last_keystate & k) for k in (1, 256)]):
-            self.msg_runner.skip()
+        for k in (1, 256):
+            if keystate & k and not self.last_keystate & k:
+                self.msg_runner.skip()
+                break
         self.msg_runner.skipping = bool(keystate & 256)
         self.last_keystate = keystate
         self.msg_runner.run_iteration()