view pytouhou/game/laser.pxd @ 612:73f134f84c7f

Request a RGB888 context, since SDL2’s default of RGB332 sucks. On X11/GLX, it will select the first config available, that is the best one, while on EGL it will iterate over them to select the one closest to what the application requested. Of course, anything lower than RGB888 looks bad and we really don’t want that.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Thu, 26 Mar 2015 20:20:37 +0100
parents 53fa73932e9a
children a6af3ff86612
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]
    cdef double 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]
    cdef double 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 *