http://blog.sysuschool.com/u/mygod/index.html
请稍候,载入中。。。
 
请稍候,载入中。。。
2019-5-14 10:52:00
博文:pygame续(三)巧用计数

 

看-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方法

 

mygod | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
请稍候,载入中。。。
公告
请稍候,载入中。。。
时间记忆
请稍候,载入中。。。
最新日志
请稍候,载入中。。。
最新评论
请稍候,载入中。。。
最新回复
请稍候,载入中。。。
我的好友
我的相册
站点信息
请稍候,载入中。。。
生活因感动而精彩,理想在创造中放飞
Powered by Oblog.