博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
28飞机大战_碰撞检测
阅读量:7209 次
发布时间:2019-06-29

本文共 982 字,大约阅读时间需要 3 分钟。

目录

 

1.  了解碰撞检测方法

2.  碰撞实现


1.  了解碰撞检测方法

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

pygame.sprite.groupcollide()

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

pygame.sprite.spritecollide()

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

2.  碰撞实现

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

 

转载于:https://www.cnblogs.com/xinmomoyan/p/10354731.html

你可能感兴趣的文章
PS教程:如何批量处理图片
查看>>
Delphi查询Sqlserver数据库传入日期类型方法总结
查看>>
Windows8(2012) 如何改变登录界面上难看的头像,任意换!
查看>>
超简单将Centos的yum源更换为国内的阿里云源
查看>>
SharePoint 2010 Crawl Component Stuck in “Recovering” status
查看>>
Visual Studio 11预览: 新的编程语言功能
查看>>
2012年总结
查看>>
KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结
查看>>
linux “命令行自动补全”功能用命令
查看>>
关于JFace中的向导式对话框(WizardDialog类)
查看>>
学习NGUI前的准备NGUI的相关信息
查看>>
C++ 将数据转为字符串的几种方法
查看>>
eclipse 左边目录结构下五referenced library解决办法
查看>>
TextView跑马灯效果
查看>>
LeetCode 58 Spiral Matrix II
查看>>
iTunes 安装ipa文件到iPhone上
查看>>
PLSQL:[1]plsql中文乱码,显示问号
查看>>
兼容iOS 10 资料整理笔记
查看>>
【小白的CFD之旅】22 好网格与坏网格
查看>>
MySQL--指定浮点型数据的精确度TRUNCATE
查看>>