|
看-will博客《飞机游戏》中代码,其用计数实现角色飞机的动画、实现定时发射子弹、实现定时出现敌机,好像还有实现角色飞机的爆炸和敌机的爆炸(这部分代码还没看,估计应该是这样做,后面补充,因为理解有点乱,自己先总结下)
定义一个变量ticks=0,注意与pygame的tick没有任何关系,仅是一个用于计数的变量
while True 死循环中,三个判断用于飞机角色的更换、子弹发射、敌机出现,然后ticks自加,注意python没有++写法,用ticks += 1
1、实现hero的动画,计数周期30完成更换图片,即计数15进行更换
初始化中 hero_surface = [] hero_surface.append(shoot_img.subsurface(pygame.Rect(0,0,102,126))) hero_surface.append(shoot_img.subsurface(pygame.Rect(102,0,102,126)))
计数更换(//取整)
if ticks >= 30:
ticks = 0
hero.image = hero_surface[ ticks//(30//2) ]
——0~14取hero_surface[0],15~29取hero_surface[1]
2、角色定时发射子弹
if ticks % 10 ==0:
hero.single_shoot(bullet_surface)
——每计数10,调用hero的single_shoot函数(生成子弹精灵,update方法向上移动)
3、定时产生敌机
if ticks % 20 == 0:
enemy = Enemy(enemy_surface,enemy_pos)
enemy_group.add(enemy)
——每计数20,调用Enemy类创建敌机并添加到精灵组(有点小问题,计数满30就归0,这里实际是30一次)
4、执行计数自加
ticks += 1
然后调用各精灵组的update、draw方法
|