• Python
  • 飞机大战-碰撞检测源代码和爆炸特效

  • @ 2024-9-21 19:12:25

飞机大战-碰撞检测源代码

image image image image image image

from settings import *


class Explosion(pygame.sprite.Sprite):
    def __init__(self, images, center):
        """
        [6]爆炸特效
        :param images: 爆炸特效图片的surface对象的列表
        :param center: 图片的中心位置
        """
        pygame.sprite.Sprite.__init__(self)
        self._layer = 6  # [6]层级
        self.images = images  # [6]存储爆炸图片的列表
        self.center = center  # [6]记录爆炸中心
        self.image = self.images[0]  # [6]取第一个爆炸图片
        self.rect = self.image.get_rect()  # [6]获取rect对象
        self.rect.center = self.center  # [6]调整中心点的位置
        self.frame = 0  # [6]记录爆炸动画帧
        self.last_time = pygame.time.get_ticks()  # [6]记录上次动画播放的时间

    def update(self):
        self.rect.y += 1  # 让爆炸特效动画向下移动, 效果更真实
        now = pygame.time.get_ticks()  # [6]获取当前时间
        if now - self.last_time > 80:  # [6]每80毫秒更新一帧动画
            self.last_time = now  # [6]更新上次记录的时间为当前时间
            self.frame += 1  # [6]动画帧数加1
            if self.frame < len(self.images):  # [6]如果没有播放到最后一帧
                self.image = self.images[self.frame]  # [6]更新图片
            else:  # [6]如果播放到最后一帧
                self.kill()  # [6]移出精灵组,不再显示

爆炸特效代码

0 条评论

目前还没有评论...