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的前面。雖然你給我的碰撞檢測比我所支持的更有效率。 –