Hindernis zwischen Objecten Detectieren

Übersicht Andere Programmiersprachen Allgemein

Neue Antwort erstellen

Cykid

Betreff: Hindernis zwischen Objecten Detectieren

BeitragFr, Okt 12, 2018 10:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich überlege grade wie ich in einem Top Down Shooter / RTS oder ähnlichem, erkennen kann ob ein Schütze freie Schusslinie hat.
Jeder Schütze hat die Fähigkeit sich via A* über die Map zu bewegen.

Meine Ideen waren bisher:
A:
1. Detectieren ob im Radius des Schützen Gegner in Reichweite sind (Circle Colission)
2. Wenn JA => Pixel für Pixel durchgehen und auf Collision mit einem Hinderniss prüfen
3. Wenn Hinderniss gefunden => Keine freie Schussbahn

B:
1. Detectieren ob im Radius des Schützen Gegner in Reichweite sind (Circle Colission)
2. A* zum Gegner durchführen
3. Sollte ein Tile gefunden werden, das nicht passierbar ist => Keine freie Schussbahn

Meine Frage:
Gibt es da einen besseren Ansatz? Habt Ihr sowas schonmal gelöst?

SpionAtom

Betreff: OneLoneCoder

BeitragSa, Okt 13, 2018 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht 100% dein Thema, aber der Typ hats drauf mit Sachen erklären.


Line Of Sight or Shadow Casting in 2D

Seine Videos gehen gerne mal ein wenig länger, aber das gereicht ihm zum Vorteil.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Xeres

Moderator

BeitragSa, Okt 13, 2018 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich verstehe "A* zum Gegner durchführen" nicht. A* findet den kürzesten weg - das kann eine Linie sein, muss aber nicht. Falls du Bresenham meintest: das wäre meine Lösung. Vorausgesetzt du benutzt Tiles, das wird aus deiner Problembeschreibung nicht so recht klar.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group