view pytouhou/game/bullet.pxd @ 792:11bc22bad1bf

python: Replace the image crate with png We weren’t using any of its features anyway, so the png crate is exactly what we need, without the many heavy dependencies of image. https://github.com/image-rs/image-png/pull/670 will eventually make it even faster to build.
author Link Mauve <linkmauve@linkmauve.fr>
date Sat, 17 Jan 2026 22:22:25 +0100
parents a6af3ff86612
children
line wrap: on
line source

from pytouhou.game.element cimport Element
from pytouhou.game.game cimport Game
from pytouhou.game.bullettype cimport BulletType
from pytouhou.utils.interpolator cimport Interpolator


cdef enum State:
    LAUNCHING, LAUNCHED, CANCELLED


cdef class Bullet(Element):
    cdef public State state
    cdef public unsigned long flags, frame, sprite_idx_offset, damage
    cdef public double dx, dy, angle, speed
    cdef public bint was_visible, grazed
    cdef public Element target
    cdef public BulletType _bullet_type
    cdef public list attributes

    cdef double hitbox[2]
    cdef Interpolator speed_interpolator
    cdef Game _game
    cdef long player

    cdef bint is_visible(self, unsigned int screen_width, unsigned int screen_height) nogil
    cpdef set_anim(self, sprite_idx_offset=*)
    cdef bint launch(self) except True
    cdef bint collide(self) except True
    cdef bint cancel(self) except True
    cdef bint update(self) except True