美文网首页
飞机大战-碰撞检测

飞机大战-碰撞检测

作者: GaoYuan117 | 来源:发表于2020-03-03 21:20 被阅读0次

目标

  • 了解碰撞检测方法
  • 碰撞实现

01. 了解碰撞检测方法

  • pygame 提供了 两个非常方便 的方法可以实现碰撞检测:

pygame.sprite.groupcollide()

  • 两个精灵组所有的精灵 的碰撞检测
groupcollide(group1, group2, dokill1, dokill2, collided = None) -> Sprite_dict
  • 如果将 dokill 设置为 True,则 发生碰撞的精灵将被自动移除
  • collided 参数是用于 计算碰撞的回调函数
    • 如果没有指定,则每个精灵必须有一个 rect 属性

pygame.sprite.spritecollide()

  • 判断 某个精灵指定精灵组 中的精灵的碰撞
spritecollide(sprite, group, dokill, collided = None) -> Sprite_list
  • 如果将 dokill 设置为 True,则 指定精灵组发生碰撞的精灵将被自动移除
  • collided 参数是用于 计算碰撞的回调函数
    • 如果没有指定,则每个精灵必须有一个 rect 属性
  • 返回 精灵组 中跟 精灵 发生碰撞的 精灵列表

02. 碰撞实现

def __check_collide(self):

    # 1. 子弹摧毁敌机
    pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True)
    
    # 2. 敌机撞毁英雄
    enemies = pygame.sprite.spritecollide(self.hero, self.enemy_group, True)
    
    # 判断列表时候有内容
    if len(enemies) > 0:
    
        # 让英雄牺牲
        self.hero.kill()
        
        # 结束游戏
        PlaneGame.__game_over()

相关文章

  • 飞机大战碰撞检测

    1.碰撞条件: 1.都有碰撞盒(collider) 2.其中一个有刚体(Rigidbody) Sprite:添加R...

  • 飞机大战-碰撞检测

    目标 了解碰撞检测方法 碰撞实现 01. 了解碰撞检测方法 pygame 提供了 两个非常方便 的方法可以实现碰撞...

  • Python 项目飞机大战- 05 发射子弹以及碰撞检测

    目录一、了解碰撞检测方法二、 碰撞实现三、 飞机大战具体的代码实现 一、了解碰撞检测方法 pygame提供了 两个...

  • python飞机大战3 碰撞检测

    碰撞 碰撞是游戏开发的基本部分。 碰撞检测意味着您要检测游戏世界中的一个对象是否正在触摸另一个对象。 碰撞反应决定...

  • Cocos2d-x lua开发微信飞机大战

    0. 简介 这是微信飞机大战游戏的cocos2d-x lua中的实现,完成了精灵的创建,动画,碰撞检测等内容。 1...

  • Cocos2d-x lua开发微信飞机大战

    0. 简介 这是微信飞机大战游戏的cocos2d-x lua中的实现,完成了精灵的创建,动画,碰撞检测等内容。 1...

  • JAVA飞机大战(五)

    接着JAVA飞机大战(四)继续写. 一、在Hero类中英雄机和敌人碰撞的实现1.英雄机与敌人的碰撞检测 2.英雄机...

  • Python打飞机(飞机大战)

    敌机和主机 发子弹 连发子弹 飞机大战(加音乐代码) 飞机大战代码: 精灵组 飞机大战敌机 飞机大战背景 上下左右...

  • Python:飞机大战游戏7:发射子弹以及碰撞检测

    1.1、回顾一下英雄发射子弹的需求(1)、游戏启动后,英雄 出现在屏幕的 水平中间 位置,距离屏幕底部 120像素...

  • 飞机大战

    飞机大战 导入模块的三种方式 import pygamefrom 模块名 import *(代表所有)from 模...

网友评论

      本文标题:飞机大战-碰撞检测

      本文链接:https://www.haomeiwen.com/subject/tiullhtx.html