我正在开发一个简单的 2D 足球游戏,在我的球员之间传球时我想检查是否有任何敌方球员可以拦截球,我想做的是计算我和我之间的坐标列表玩家可以说是一个走廊,然后检查这个区域是否有敌方玩家,
-------------------------- S S --------------------------
Ss这样躺着的时候计算面积很容易,但是不对齐的时候怎么算面积,
/S / / / / / / / / / / / / S/
编辑:当我指的是区域时,我想要该区域的坐标列表,以便我可以根据玩家坐标检查这些坐标,而不是区域的大小。
最佳答案
(image) http://img441.imageshack.us/img441/9051/soccer.png
显示敌人在红线之间:Calculate the distance敌人到由两名玩家形成的线(虚线)。如果是<= w/2
(w
是您“区域”的宽度),那么敌人要么在该区域内,要么在其中一名玩家身后。
Show enemy is between orange lines:要检查他不在其中一名玩家后面,只需检查他是 between the two lines通过其中一名球员并且是normal ( perpendicular ) 到第一行(穿过两个玩家的虚线)。
这会告诉你敌人是否在黄色区域内:
关于algorithm - 计算 Sprite 之间的面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3233873/