comparison pytouhou/game/bullet.pyx @ 617:a6af3ff86612

Change all “void except *” function into “bint except True”, to prevent PyErr_Occurred() from being called at each call.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Sun, 29 Mar 2015 00:08:20 +0100
parents 3c2f96f1d715
children
comparison
equal deleted inserted replaced
616:4ce3ef053a25 617:a6af3ff86612
108 self.sprite.angle = self.angle 108 self.sprite.angle = self.angle
109 self.anmrunner = ANMRunner(bt.anm, bt.anim_index, 109 self.anmrunner = ANMRunner(bt.anm, bt.anim_index,
110 self.sprite, self.sprite_idx_offset) 110 self.sprite, self.sprite_idx_offset)
111 111
112 112
113 cdef void launch(self) except *: 113 cdef bint launch(self) except True:
114 self.state = LAUNCHED 114 self.state = LAUNCHED
115 self.frame = 0 115 self.frame = 0
116 self.set_anim() 116 self.set_anim()
117 self.dx, self.dy = cos(self.angle) * self.speed, sin(self.angle) * self.speed 117 self.dx, self.dy = cos(self.angle) * self.speed, sin(self.angle) * self.speed
118 118
119 if self.flags & 1: 119 if self.flags & 1:
120 self.speed_interpolator = Interpolator((self.speed + 5.,), 0, 120 self.speed_interpolator = Interpolator((self.speed + 5.,), 0,
121 (self.speed,), 16) 121 (self.speed,), 16)
122 122
123 123
124 cdef void collide(self) except *: 124 cdef bint collide(self) except True:
125 self.cancel() 125 self.cancel()
126 self._game.new_particle((self.x, self.y), 10, 256) #TODO: find the real size. 126 self._game.new_particle((self.x, self.y), 10, 256) #TODO: find the real size.
127 127
128 128
129 @cython.cdivision(True) 129 @cython.cdivision(True)
130 cdef void cancel(self) except *: 130 cdef bint cancel(self) except True:
131 # Cancel animation 131 # Cancel animation
132 bt = self._bullet_type 132 bt = self._bullet_type
133 self.sprite = Sprite() 133 self.sprite = Sprite()
134 if self.player >= 0: 134 if self.player >= 0:
135 self.sprite.angle = self.angle - pi 135 self.sprite.angle = self.angle - pi
143 self.dy /= divisor 143 self.dy /= divisor
144 144
145 self.state = CANCELLED 145 self.state = CANCELLED
146 146
147 147
148 cdef void update(self) except *: 148 cdef bint update(self) except True:
149 cdef int frame, count, game_width, game_height 149 cdef int frame, count, game_width, game_height
150 cdef double length, angle, speed, acceleration, angular_speed 150 cdef double length, angle, speed, acceleration, angular_speed
151 151
152 if self.anmrunner is not None and not self.anmrunner.run_frame(): 152 if self.anmrunner is not None and not self.anmrunner.run_frame():
153 if self.state == LAUNCHING: 153 if self.state == LAUNCHING: