Mercurial > touhou
view pytouhou/game/laser.pxd @ 524:7f016dfbdfb1
Make vector a struct, allocate it directly on the stack, and thus pass it by copy, which is much less expensive than a python allocation.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Wed, 18 Dec 2013 18:15:40 +0100 |
parents | b32cef75df59 |
children | 53fa73932e9a |
line wrap: on
line source
from pytouhou.game.element cimport Element from pytouhou.game.sprite cimport Sprite from pytouhou.game.lasertype cimport LaserType cdef enum State: STARTING, STARTED, STOPPING cdef class LaserLaunchAnim(Element): cdef Laser _laser cpdef update(self) cdef class Laser(Element): cdef public unsigned long frame cdef public double angle cdef unsigned long start_duration, duration, stop_duration, grazing_delay, cdef unsigned long grazing_extra_duration, sprite_idx_offset cdef double base_pos[2], speed, start_offset, end_offset, max_length, width cdef State state cdef LaserType _laser_type cdef void set_anim(self, long sprite_idx_offset=*) except * cpdef set_base_pos(self, double x, double y) cdef bint _check_collision(self, double point[2], double border_size) cdef bint check_collision(self, double point[2]) cdef bint check_grazing(self, double point[2]) #def get_bullets_pos(self) cpdef cancel(self) cpdef update(self) cdef class PlayerLaser(Element): cdef double hitbox[2], angle, offset cdef unsigned long frame, duration, sprite_idx_offset, damage cdef Element origin cdef LaserType _laser_type cdef void set_anim(self, long sprite_idx_offset=*) except * cdef void cancel(self) except * cdef void update(self) except *