python飞机大战pygame碰撞检测实现方法分析


Posted in Python onDecember 17, 2019

本文实例讲述了python飞机大战pygame碰撞检测实现方法。分享给大家供大家参考,具体如下:

目标

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

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()

更多关于Python相关内容可查看本站专题:《Python游戏开发技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现排序算法
Feb 14 Python
Python实现二叉搜索树
Feb 03 Python
python如何去除字符串中不想要的字符
Jul 05 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
python tools实现视频的每一帧提取并保存
Mar 20 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
Django框架使用内置方法实现登录功能详解
Jun 12 Python
详解Pandas之容易让人混淆的行选择和列选择
Jul 10 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
Python爬虫 简单介绍一下Xpath及使用
Apr 26 Python
python wxpython 实现界面跳转功能
Dec 17 #Python
python飞机大战pygame游戏背景设计详解
Dec 17 #Python
python实现名片管理器的示例代码
Dec 17 #Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 #Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 #Python
基于Django实现日志记录报错信息
Dec 17 #Python
python实现12306登录并保存cookie的方法示例
Dec 17 #Python
You might like
PHP手机短信验证码实现流程详解
2018/05/17 PHP
JavaScript之自定义类型
2012/05/04 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
python使用tornado实现登录和登出
2018/07/28 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
九州传奇上机题
2014/07/10 面试题
如何填写个人简历自我评价
2013/12/10 职场文书
小学教师事迹材料
2014/01/13 职场文书
给分销商的致歉信
2014/01/14 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
二年级评语大全
2014/04/23 职场文书
妇女干部培训方案
2014/05/12 职场文书
公司投资建议书
2014/05/16 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
周一给客户的问候语
2015/11/10 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
Javascript之datagrid查询详解
2021/09/15 Javascript
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript