Hi,
Habe gerade ein kleines Problem.
Und zwar programmiere ich gerade ein kleines Spiel, wo man eine Person steuert und sobald man in das Sichtfeld einer anderen Person kommt soll etwas passieren.
Jetzt bin ich soweit, dass die andere Person entweder nach oben/unten/rechts/links guckt und dann berechne ich den Abstand zwischen den beiden personen.
Wenn der Abstand < 150pixel ist, ist man im sichtradius:
Wenn die Person nach rechts oder links guckt, berechne ich mit cosinus den winkel zwischen dem abstand und der horizontalen linie. Wenn der Winkel kleiner als 25° ist, ist man im Sichtfeld.
Wenn die Person nach oben oder unten guckt, berechne ich wieder mit cosinus den Winkel zwischen dem Abstand und der Vertikalen Linie. Wenn der Winkel kleiner als 25° ist, ist man im Sichtfeld.
Jetzt kann es aber sein, dass dazwischen noch eine Wand ist bei den Koordinaten (x/y) und sie ist z.B. 25pixel hoch und 3 pixel breit.
Jetzt würde ich gerne kontrollieren, ob die "Sichtlinie" von der Position des Spielers zu der anderen Person noch eine Wand dazwischen ist. Weiß jetzt aber nicht wie ich das kontrollieren soll.
Hier noch ein Bild um das zu verdeutlichen:
Wie kontrolliere ich das am Besten?
Gruß,
Dennis
Habe gerade ein kleines Problem.
Und zwar programmiere ich gerade ein kleines Spiel, wo man eine Person steuert und sobald man in das Sichtfeld einer anderen Person kommt soll etwas passieren.
Jetzt bin ich soweit, dass die andere Person entweder nach oben/unten/rechts/links guckt und dann berechne ich den Abstand zwischen den beiden personen.
Wenn der Abstand < 150pixel ist, ist man im sichtradius:
Wenn die Person nach rechts oder links guckt, berechne ich mit cosinus den winkel zwischen dem abstand und der horizontalen linie. Wenn der Winkel kleiner als 25° ist, ist man im Sichtfeld.
Wenn die Person nach oben oder unten guckt, berechne ich wieder mit cosinus den Winkel zwischen dem Abstand und der Vertikalen Linie. Wenn der Winkel kleiner als 25° ist, ist man im Sichtfeld.
Jetzt kann es aber sein, dass dazwischen noch eine Wand ist bei den Koordinaten (x/y) und sie ist z.B. 25pixel hoch und 3 pixel breit.
Jetzt würde ich gerne kontrollieren, ob die "Sichtlinie" von der Position des Spielers zu der anderen Person noch eine Wand dazwischen ist. Weiß jetzt aber nicht wie ich das kontrollieren soll.
Hier noch ein Bild um das zu verdeutlichen:
Wie kontrolliere ich das am Besten?
Gruß,
Dennis