Python学习日记-第二十六天-飞机大战(发射子弹和碰撞检测)

本文是Python学习日记的第二十六篇,主要介绍了飞机大战游戏中发射子弹的实现和碰撞检测的方法。通过Pygame的定时器功能,创建了子弹类并实现了子弹的更新与删除逻辑。同时,讲解了pygame提供的`groupcollide`和`spritecollide`两个碰撞检测方法,用于检测游戏中的精灵碰撞情况。最后,总结了飞机大战项目的相关代码。
摘要由CSDN通过智能技术生成

系列文章目录

1.发射子弹

2.碰撞检测


一、发射子弹

1.1   添加发射子弹事件

Pygame的定时器使用套路非常固定:

  1. 定义定时器常量——eventtid
  2. 在初始化方法中,调用set_timer方法设置定时器事件
  3. 在游戏循环中,监听定时器事件

在Hero中定义fire方法

 

 

 

 控制台输出结果:

 

1.2   定义子弹类

Bullet——子弹

·初始化方法

  指定子弹图片

  初始速度 = -2——子弹需要向上方飞行

·重写update()方法

  判断是否飞出屏幕,如果是,从精灵族删除

定义子弹类

·在plane_sprites新建Bullet继承自GameSprite

·重写初始化方法,直接指定图片名称,并且设置初始速度

·重写update()方法,判断子弹飞出屏幕从精灵族删除

 代码:

class Bullet(GameSprite):
    """子弹精灵"""

    def __init__(self):

        # 调用父类方法,设置子弹图片,设置初始速度
        super().__init__("./images/bullet.png", -2)

    def update(self):

        # 调用父类方法,让子弹沿垂直方向飞行
        supe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值