Je fais un jeu avec Python et PyGame et je voudrais mettre en place un système de ligne de visée où les ennemis peuvent vous détecter quand vous êtes dans la longueur ou la largeur d'entre eux (ce sont des Rects). Quel est le moyen le plus efficace de vérifier cela? Voilà ce que j'ai si c'est une aide ...Python/PyGame Comment puis-je vérifier si un rect est directement au-dessus ou à côté d'un autre rect dans les quatre directions?
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)
Merci pour la réponse, mais je la détection de collision traitées mais ce que je cherche c'est si le Rect passe devant l'autre Rect. Bien que ce que vous m'avez donné pour la détection de collision soit beaucoup plus efficace que ce que j'avais pour vous. –