gpt4 book ai didi

python - 如何防止我的 Sprite 穿过 pygame 中的对象?

转载 作者:行者123 更新时间:2023-11-28 21:52:59 26 4
gpt4 key购买 nike

所以我一直在研究一款游戏,到目前为止最大的问题是我们无法让玩家与场上的任何物体发生碰撞。相反,他们直接穿过树。谁能告诉我为什么?这是我尝试用于碰撞检测的代码:

for tree in treelist:


if self.player.rect.x == tree.rect.x:
self.player.rect.x == self.player.rect.x - 2
if self.player.rect.x == tree.rect.x + tree.rect.width:
self.player.rect.x == self.player.rect.x + 2

if self.player.rect.y == tree.rect.y:
self.player.rect.y == self.player.rect.y - 2
if self.player.rect.y == tree.rect.y + tree.rect.height:
self.player.rect.y == self.player.rect.y + 2

这在理论上是合理的还是我的做法全错了?

最佳答案

你在使用pygame吗?如果是这样,则有内置的 colliderect 函数(文档 here )。

如果不是:

  • Here's相对深入的讨论,设计时考虑到了平台游戏。
  • This只是轴对齐(即未旋转)矩形的准系统二维碰撞检测

请记住,物体移动得非常快会使碰撞检测变得非常困难,因为它们会在一帧的范围内“经过”物体!有更先进的技术来处理这个问题,但现在,尽量让你的碰撞盒相对较大,并且物体移动相对较慢。

编辑:糟糕,我的第一句话听起来很粗鲁。我只是不知何故忘记了这篇文章的标题是什么......

关于python - 如何防止我的 Sprite 穿过 pygame 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27392237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com