python中pygame.sprite碰撞检测学习

本文介绍使用Python的pygame库中的sprite模块进行碰撞检测,包括如何进行rect碰撞检测,以及后续将探讨的圆形碰撞和对象与group的碰撞处理。
摘要由CSDN通过智能技术生成

pygame中的sprite加上sprite.Group,进行批量的对象碰撞检测太简单了,不仅有多种的碰撞检测模式,还能以各种方式控制处理结果,今天先学习groupcollide的rect碰撞检测,明天再看看几个圆形碰撞,以及对象与group的碰撞。

    def _CheckCollide(self):
        # print('Check collide.')
        # 英雄和敌机碰撞检测(不管双方血量,直接结束游戏)
        collide = pg.sprite.groupcollide(self.gs_herolist, self.gs_enemylist, False, True)
        if collide:
            self._GamePause()

        # 英雄和敌机子弹碰撞检测(判断英雄血量,少于1则结束游戏)
        collide = pg.sprite.groupcollide(self.gs_enemybulletlist, self.gs_herolist, True, False)
        if collide:
            # 防止NoneType
            try:
                for _heros_ in collide.values():
                    for _hero_ in _heros_:
                        # 扣血1格,如果死亡则游戏暂停。
                        self._hero_life_count = _hero_.hit()
            except Exception as e:
                print('发生异常:', e)

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值