相关疑难解决方法(0)

分离轴定理和Python

这就是我目前正在做的事情:

创建垂直于2个矩形的4个边的4轴.由于它们是矩形,因此我不需要为每条边生成轴(法线).

然后我循环我的4轴.

因此,对于每个轴:我将矩形的每个角投影到轴上.有两个包含这些投影的列表(数组).每个矩形一个.然后我得到每个投影和轴的点积.这将返回一个标量值,可用于确定最小值和最大值.

现在,2个列表包含标量而不是向量.我对列表进行排序,以便我可以轻松选择最小值和最大值.如果框B的最小值=框A的最大值或框B的最大值<=框A的最小值,则该轴上没有碰撞且对象之间没有碰撞.

此时函数完成并且循环中断.

如果所有轴都没有满足这些条件,那么我们就会发生碰撞

我希望这是正确的做法.

python代码本身可以在这里找到http://pastebin.com/vNFP3mAb

另外:http: //www.gamedev.net/page/reference/index.html/_/reference/programming/game-programming/collision-detection/2d-rotated-rectangle-collision-r2604

我遇到的问题是上面的代码不起作用.即使没有碰撞,它也始终检测到碰撞.我输入的内容正是代码所做的.如果我遗漏任何步骤或者只是不了解SAT如何运作,请告诉我.

python math pygame physics

4
推荐指数
1
解决办法
2085
查看次数

标签 统计

math ×1

physics ×1

pygame ×1

python ×1