共计 1376 个字符,预计需要花费 4 分钟才能阅读完成。
申明:原创不易,未经许可,不得转载
0. 前言
hello,小伙伴们!我还是带你们一起写游戏的猫姐。
明天是这个游戏的,第 8 集了!上一集,咱们实现了蘑菇的前身 - 蘑菇小方块,这一集,咱们用定时器这个技术,产生很多着落的蘑菇!
好了,咱们代码搞起。
1. 定时器的应用
当初,咱们用定时器,每过 1000ms
,也就是 1 秒钟,产生一个方块。在pygame
里应用定时器,超简略,3 行代码就搞定了:
咱们先定义一个事件,应用pygame.USEREVENT + 1
,赋值给 ADDENEMY 变量。
# 定义一个事件
ADDENEMY = pygame.USEREVENT + 1
pygame.time.set_timer(ADDENEMY, 1000)
而后,咱们把这个事件增加到定时器里,也就是,每过 1000ms,ADDENEMY
这个事件 就会被激活一次,这里应用 pygame.time.set_timer
函数增加定时事件,括号外面传入的是 ADDENEMY
事件以及工夫。
接下来,咱们要解决,定时事件被激活时,要做的事件,也就是每通过 1 秒钟,须要生成一下新的蘑菇!
在 while
循环外面,在这里,写上elif event.type == ADDENEMY
,创立一个新蘑菇对象:
elif event.type == ADDENEMY:
mushroom = MushRoom()
mushrooms.add(mushroom)
而后再把生成的 mushroom
对象增加到精灵组外面,这里应用精灵组 mushrooms
的add 函数
,就能够把精灵增加到精灵组外面了。对于定时器,大家只有记住,每过 1 秒钟,这两行代码就会运行一次!
这里用到了一个新的变量 mushrooms
,所以咱们在 while 循环里面,要定义一下 mushrooms 这个变量,这里通过pygame.sprite.Group 创立一个精灵组,赋值给 mushrooms。
mushrooms = pygame.sprite.Group()
这个精灵组 group 是个好货色,能够批量治理所有的蘑菇,大家只须要了解,mushrooms 外面放了很多个蘑菇就能够了!
最初,咱们还须要批改一个中央,就是方块的绘制和更新函数那里,须要把 mushroom 改成 mushrooms。
咱们运行看下成果,能够看到,每过一秒就会产生一个新的蘑菇方块。
接下来,咱们要把方块换成真正的蘑菇图片了。
在 image 目录下,蘑菇的图片我曾经筹备好了。咱们来革新一下 MushRoom 类,
所以间接把 self.image
和self.image.fill
这两行代码正文掉,而后通过 Pygame.image.load
函数来导入蘑菇的图片,括号外面传入的是蘑菇图片的门路,把它赋值给 self.image。
class MushRoom(pygame.sprite.Sprite):
def __init__(self):
super(MushRoom, self).__init__()
# self.image = pygame.Surface((30, 30))
# self.image.fill("red")
self.image = pygame.image.load("./image/red_mushroom.png")
运行程序看下成果,能够看到,蘑菇的图片就显示进去了!
红伞伞的这个游戏马上快完结了,你跟上了吗!
关注猫姐,下一集咱们让小男孩来接住着落的蘑菇!