Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

botlin

Treue Seele

  • »botlin« ist der Autor dieses Themas

Beiträge: 139

Wohnort: Berlin

Beruf: Fachinformatiker für Anwendungsentwicklung, Student Internationale Medieninformatik

  • Private Nachricht senden

1

14.07.2011, 09:29

Selektion von Spielelementen

Hi Leute...

Ich will mich die kommenden Tage mal mit Selektion verschaffen.

Ziel ist folgendes:
Ich will eine beliebige Anzahl an Figuren, in diesem Fall farbige Klötzchen im Spiel anzeigen.
Der Spieler kann sich bewegen und mit der Maus umsehen.
Wenn der Spieler auf eine Figur blickt soll über ihr z.B. ein Name erscheinen.
Und wenn man klickt dann soll ein Dialog aufgehen.

Meine Herrangehensweise wäre folgende:

Zu erst würde ich durch diverse Cullingverfahren alle Objekte Rausfilltern die ich nicht sehen kann und die nicht in einem bestimmten Interaktionsradius liegen.

Anschliessend würde ich jedes infrage kommende Objekt Überprüfen.
Mein Ansatz dazu ist es, ein Objekt mit einer Boundingsphere zu versehen.
Ich würde nun einen gedachten Punkt vom Spieler entlang des Sichtwecktors verschieben.
Also vom Standpunkt zu dem Punkt auf den die Maus zeigt.
Die Länge der Verschiebung würde die Distance zwischen Spieler und Object sein.
Ich würde prüfen ob sich der Punk dann innerhalb der Objektsphere befindet.
Um Probleme mit Überschneidung zu vermeiden würde ich die Sphere so anlegen das sie nur innerhalb der Objekt geometrie liegt.

Wenn ich dann eine Selektion habe soll ein Event ausgelöst werden welches wiederum ein Script startet in dem der Dialog steckt.

Mich würde eure Meinung zu dieser vorgehensweise interessieren?
Müsste man noch was bedenken?
Habt ihr verbesserungsvorschläge?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

14.07.2011, 12:32

Hört sich doch an sich vernünftig an. Wäre auch meine spontane Herangehensweise dazu denke ich. Mit dem verschieben des Punktes kannst du mal gucken was deine Engine so liefert. Vielleicht gibt es schon eine implementierte Ray-Kollision. Damit könntest du es möglichst einfach lösen. Ansonsten kannst du natürlich auch gucken, dass deine Welt in viele kleine Partitionen unterteilt ist. Dann kannst du von vornherein schon viele Partitionen ausschließen und somit einiges an Vergleichsarbeit sparen. Ist auch für viele andere Probleme hilfreich.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“