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实现基于HTTP文件传输实例
Nov 08 Python
Python实现的ini文件操作类分享
Nov 20 Python
python 自动化将markdown文件转成html文件的方法
Sep 23 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 Python
django2 快速安装指南分享
Jan 05 Python
python列表的增删改查实例代码
Jan 30 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
Python包,__init__.py功能与用法分析
Jan 07 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 adodb分页实现代码
2009/03/19 PHP
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
php array_search() 函数使用
2010/04/13 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
移动端界面的适配
2017/01/11 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
vue点击页面空白处实现保存功能
2019/11/06 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
车贷收入证明范本
2014/01/09 职场文书
服装店营销方案
2014/03/10 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
战友聚会致辞
2015/07/28 职场文书