pygame同一个角色创建多个示例

本文章通过精灵的方式,将一个角色创建出多个,或者说克隆出多个

素材的位置自己替换

import pygame

import random
pygame.init()
# 自定义事件
MOVEEVENT = pygame.USEREVENT
# 第一个参数为事件,第二个参数为时间
pygame.time.set_timer(MOVEEVENT,1000)
clo = pygame.time.Clock()


screen = pygame.display.set_mode((300,300))

class Enemy(pygame.sprite.Sprite):
    def __init__(self):
        # 使用精灵时必须初始化
        pygame.sprite.Sprite.__init__(self)
        # 导入素材
        self.image = pygame.image.load('image/enemy.png')
        # 获取素材的rect
        self.rect = self.image.get_rect()
        # 初始化飞机的速度
        self.speed = random.randint(1, 3)
        # 3,指定敌机的初始随机位置
        self.rect.bottom = 0
        self.rect.x = random.randint(0, 300)

    def update(self):
        # 1,往下飞
        self.rect.y += self.speed
        # 2,判断是否移出了屏幕,如果移出删除当前对象
        if self.rect.y >= 300:
            self.kill()
            # 测试当前对象是否删除
            print(222222222)

# 创建精灵
enemy_group = pygame.sprite.Group()

def create_sprites():
    # 引用
    global enemy_group
    # 创建敌机的精灵组
    for event in pygame.event.get():
        # 判断退出
        if event.type == pygame.QUIT:
            exit()
        # 事件监测
        if event.type == MOVEEVENT:
            # 创建对象
            enemy = Enemy()
            # 2,将敌机精灵添加到敌机精灵组
            enemy_group.add(enemy)


def update_sprites():
        # 代用更新和绘制方法,精灵族中的精灵会一起调用
        enemy_group.update()
        enemy_group.draw(screen)



while True:
    # 填充屏幕,用来做刷新
    screen.fill((255, 255, 255))
    create_sprites()
    update_sprites()

    pygame.display.update()
    # 设置帧率
    clo.tick(60)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值