pygame飞机大战4

pygame.mask.from_surface(self,image)

对图片的非透明部分做标记

pygame.sprite.spritecollide(b, enemies, False, pygame.sprite.collide_mask)

完美检测碰撞

 bullet1.append(bullet.Bullet1(me.rect.midtop))

me.rect.midtop,子弹生成在飞机的中间的顶部

if not(delay % 10):
            bullet1[bullet1_index].reset(me.rect.midtop)

            bullet1_index = (bullet1_index + 1) % BULLET1_NUM

每10帧绘制一枚子弹,子弹索引0~3,

按照子弹的飞行速度,4个子弹差不多一个屏幕的高度

pygame.draw.line(screen, BLACK, \
                                 (each.rect.left, each.rect.top - 5), \
                                 (each.rect.right, each.rect.top - 5), \

                                 2)

绘制血槽的底槽,黑色,放在飞机的上方5个像素的位置,2个像素的宽度

energy_remain = each.energy / enemy.BigEnemy.energy
                if energy_remain > 0.2:
                    energy_color = GREEN
                else:
                    energy_color = RED
                pygame.draw.line(screen, energy_color, \
                                 (each.rect.left, each.rect.top - 5), \
                                 (each.rect.left + each.rect.width * energy_remain, \

                                  each.rect.top - 5), 2)

如果energy(血量)大于百分之20,血条颜色为绿色,低于则为红色

起点(each.rect.left, each.rect.top - 5)

终点(each.rect.left + each.rect.width * energy_remain, \each.rect.top - 5)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值