碰撞检测

目标

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

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

java 中飞机大战碰撞检测_飞机大战3--碰撞检测相关推荐

  1. java飞机大战流程图_飞机大战说明文档

    JIANGXI AGRICULTURAL UNIVERSITY精彩内容,尽在百度攻略:https://gl.baidu.com 科技月月评设计报告 精彩内容,尽在百度攻略:https://gl.bai ...

  2. 谈谈对java中分层的理解_让我们谈谈网页设计中的卡片设计

    谈谈对java中分层的理解 "I want a card", this is the first demand point that the customer said in th ...

  3. java中next的用法_关于java iterator的next()方法的用法

    UYOU next()是java迭代器类(Iterator)的方法,获得当前游标指向的下一个元素,详细说明和应用如下:1.迭代器(Iterator)介绍 迭代器是一种设计模式,它是一个对象,它可以遍历 ...

  4. java中execution的作用_一文初步了解Java虚拟机

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...

  5. java中打开文件显示_从java程序中打开任何文件

    在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...

  6. java中字符串的创建_【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  7. java中字符流 字节流_理解Java中字符流与字节流的区别

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...

  8. JAVA中流水账的实现_流水账式java基础Summary

    来一篇java基础知识的小总结,采用流水账式,不是特意的,而是不知道用什么形式把这些东西联系起来,那就想起什么写些什么吧 关键字:java中赋予特殊含义,具有专门用途的的单词,class.public ...

  9. java中的最终变量_在lambda表达式中使用的变量应该是最终变量或有效的最终变量。...

    A final变量意味着它只能被实例化一次.在Java中,您不能在lambda和匿名内部类中使用非最终变量. 您可以使用旧的for-each循环重构代码:private TimeZone extrac ...

  10. java 中如何实现多进程_在Java中可以使用哪些方法来实现Java的多进程运行模式?...

    在Java中我们可以使用两种方法来实现这种要求.最简单的方法就是通过Runtime中的exec方法执行java classname.如果执行成功,这个方法返回一个Process对象,如果执行失败,将抛 ...

最新文章

  1. iOS App的几种多视图介绍
  2. Facebook高管解读财报 加大对视频业务的投资
  3. C# Aspose.Word 操作word文档(利用模板)
  4. mysql 查询超过60分钟的_mysql基础级《简单查询》60分钟搞定
  5. Hdoj 1847.Good Luck in CET-4 Everybody! 题解
  6. Get_key.c模块流程
  7. 人脸方向学习(四):人脸关键点检测+Mobilenet_v3结构探索
  8. Selenium简介
  9. 攻略AI面试官的N种姿势
  10. Windows下cwRsync搭建步骤
  11. day2_python年会抽奖游戏
  12. 泰戈尔《飞鸟集》节选
  13. php+科研课题管理 毕业设计-附源码170914
  14. 起用 RabbitMQ (二)
  15. avr模拟串口通讯c语言,AVR的模拟串口的问题
  16. 最长上升子序列(LIS) 学习总结
  17. 在可见光波长下用银树突超表面进行微分运算
  18. python双层for循环控制图像逐行扫描和逐列扫描
  19. 对于递归算法和二分查找的理解
  20. 使用稀疏 4D 卷积对 3D LiDAR 数据中的运动对象进行后退分割(IROS 2022)

热门文章

  1. 2021-2027全球与中国5G的无人驾驶汽车市场现状及未来发展趋势
  2. 电脑小白学习第六课---打包压缩软件WINRAR
  3. qemu tcg系列-概览
  4. 30-Figma-常规配图添加方式-批量配图
  5. springboot教研室台账管理系统的设计与实现
  6. 大疆M30T 与 御2行业进阶版的热红外图像合成正射影像
  7. ural 1009 K-based Numbers
  8. 1080P和720P电影的分辨率到底是多少
  9. 同华_美hame mpr-a2硬件刷openwrt固件添加usb-serial功能编译
  10. 如何理解全新的用户增长模型“6R模型”?和AARRR有何不同?