Ejemplo n.º 1
0
class SpriteItem(GameItem):
    '''GameItem that is rendered as a single sprite'''

    images = None
    render_layer = 2 # birds and feathers


    def __init__(self, x=0, y=0):
        GameItem.__init__(self)
        self.x = x
        self.y = y
        self.rotation = 0

        self.sprite = None
        self.frame_idx = 0


    def add_to_batch(self, batch, groups):
        self.sprite = Sprite(
            self.images[self.frame_idx],
            batch=batch,
            group=groups[self.render_layer] )


    def remove_from_batch(self, batch):
        self.sprite.batch = None
        self.sprite.delete()


    def animate(self):
        self.sprite._x = self.x
        self.sprite._y = self.y
        self.sprite._rotation = degrees(self.rotation)
        image = self.images[self.frame_idx]
        if self.sprite.image != image:
            self.sprite.image = image
        else:
            self.sprite._update_position()