AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Ist der Spieler im Sichtbereich?
Thema durchsuchen
Ansicht
Themen-Optionen

Ist der Spieler im Sichtbereich?

Ein Thema von Angel4585 · begonnen am 15. Mär 2011 · letzter Beitrag vom 15. Mär 2011
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

Ist der Spieler im Sichtbereich?

  Alt 15. Mär 2011, 15:07
Hallo,

ich programmiere ein Spiel und stehe vor folgendem Problem:

Ein Spieler hat eine gewisse Blickrichtung und einen Sichtbereich.
Nun muss ich irgendwie rausfinden, ob ein anderer Spieler im Sichtbereich ist, ich hab im Anhang hier mal eine kleine Grafik die das verdeutlichen soll.
bekannt sind die x/y-Position der Spieler, die Blickrichtung in grad/rad und der Winkel des Sichtbereiches.

Hat jemand ne Ahnung wie das geht? Also was ich da rechnen muss?

Miniaturansicht angehängter Grafiken
spieler_in_bereich.png  
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Ist der Spieler im Sichtbereich?

  Alt 15. Mär 2011, 15:50
Mir fallen spontan zwei Wege ein:

1) Berechne den Winkel der beiden äussersten Sichtgrenzen (hast du ja schon per definition) zu einer Achse. Liegt der Winkel der Geraden vom Spieler zum anderen Spieler zwischen diesen Werten, ist er im Sichtfeld. Fallstrick: 0-Durchgang des zyklischen Winkelmaßes, muss als Sondefall bedacht werden.

2) Wäre vektoriell, und wenn deine Ausgangslage rein trigonometrisch vorliegt, ist die Konstruktion vermutlich unnötig aufwendig. Grundsätzlich hab ich bei Trigonometrie immer Bauchweh, und würde jederzeit rein verktorielle Ansätze bevorzugen, aber wenn alles andere schon so besteht... muh
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Ist der Spieler im Sichtbereich?

  Alt 15. Mär 2011, 16:17
ähä

du meinst ich soll den Winkel der oberen und den Winkel der unteren Sichgrenze berechnen und dann schauen ob die Linie zum Spieler dazwischen liegt, das ist schonmal möglich.
Die Entfernung sollte dann kein Problem mehr sein, ja so könnte ich das machen, danke

Gibt es noch einfachere Möglichkeiten?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.626 Beiträge
 
Delphi 12 Athens
 
#4

AW: Ist der Spieler im Sichtbereich?

  Alt 15. Mär 2011, 16:40
Die Entfernung müsste sich über die Hypotenuse eines rechtwinkligen Dreiecks, gebildet aus den Koordinaten der beiden Spieler, berechnen lassen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Ist der Spieler im Sichtbereich?

  Alt 15. Mär 2011, 18:16
Gibt es noch einfachere Möglichkeiten?
Klar, du könntest dem Spieler so eine Grafik wie in deinem Posting anzeigen, und selbst entscheiden lassen! Dann sinds nur zwei Buttons "Ich seh dich" und "Ich seh dich nicht"

Nein im Ernst: Das ist doch schon super simpel. Du kennst doch schon deine Blickrichtung sowie FOV (Field of View). Die Winkel der Sichtfeldgrenzen sind dann einfach Richtung-(FOV/2) und Richtung+(FOV/2), ggf. muss man Winkel <0 und >2*pi noch fixen. Der Winkel vom Spieler zum anderen: Hier, wobei bei dir ein Vektor "Spieler->anderer Spieler" ist, und der andere einfach deine Referenzachse, zu der du deine anderen Winkelangaben auch hast.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Ist der Spieler im Sichtbereich?

  Alt 15. Mär 2011, 19:26
Ich schliesse mich @Medium an.
Du hast die FOV daten des Spielers, und du hast die xy daten des Gegenspieler. Nun must Du nur fragen, ob Gegenspieler innerhalb von FOV ist.
Wenn ja, dann melde es dem Spieler 'Gegner' gefunden zb.

alfold
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz