0
我正在用Python和PyGame进行游戏,并且我想实现一个视线系统,敌人可以在你的长度或宽度内检测到你(它们是Rects)。什么是检查这个最有效的方法?这是我有什么,如果是任何帮助......Python/PyGame如何检查矩形是否在所有四个方向上直接位于另一矩形的上方或旁边?
class FOV:
def view_left_top(ax,ay,bx,by,bh):
return ax < bx and ay < (by + bh) and ay > by
def view_left_bottom(ax,ay,ah,bx,by,bh):
return ax < bx and ay < (by + bh) and (ay + ah) > by
def view_right_top(ax,ay,aw,bx,by,bw,bh):
return ax + aw > bx + bw and ay < (by + bh) and ay > by
def view_right_bottom(ax,ay,aw,ah,bx,by,bw,bh):
return ax + aw > bx + bw and ay < (by + bh) and (ay + ah) > by
def view_top_x(ax,ay,bx,by,bw):
return ay < by and ax > bx and ax < (bx + bw)
def view_top_y(ax,ay,aw,bx,by,bw):
return ay < by and (ax + aw) > bx and ax < (bx + bw)
def view_bottom_x(ax,ay,bx,by,bw):
return ay > by and ax > bx and ax < (bx + bw)
def view_bottom_y(ax,ay,aw,bx,by,bw):
return ay > by and (ax + aw) > bx and ax < (bx + bw)
感谢您的答复,但我有碰撞检测处理但我正在寻找的是Rect是否通过了另一个Rect的前面。虽然你给我的碰撞检测比我所支持的更有效率。 –