AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vektoriales Rechnen

Ein Thema von Maurooon · begonnen am 12. Mai 2017 · letzter Beitrag vom 16. Mai 2017
Antwort Antwort
Seite 1 von 3  1 23      
Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#1

Vektoriales Rechnen

  Alt 12. Mai 2017, 14:10
Delphi-Version: 5
Hey Leute,

folgendes Problem: ich habe eine KI programmiert (einfach eine Figur) die auf den menschlichen Spieler schießen soll. Auf der "Map" sind aber noch Hindernisse (shapes) die man umgehen muss. Die KI soll jetzt NUR schießen, wenn auf der Luftlinie zu dem menschlichen Spieler KEIN Hinderniss, also kein Shape liegt.
Wie kann ich das abfragen?

LG

Edit: Die Überschrift lautet deshalb Vektorielles Rechnen, da ich vermute oder mir gar sicher bin, dass man es darüber lösen muss.
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking

Geändert von Maurooon (12. Mai 2017 um 14:15 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 14:18
Klingt nach Wegfindung.
Kennst du diese Tutorials?
https://wiki.delphigl.com/index.php/...al_Pathfinding
https://wiki.delphigl.com/index.php/...l_pathfinding2
  Mit Zitat antworten Zitat
Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#3

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 14:27
Hab mir die zwei Artikel mal durchgelesen, bzw. sie überflogen... das sieht ziemlich kompliziert aus, und meine "Map" jetzt noch in solche Quadrate einzuteilen gestaltet sich bei mir schwierig da die Hindernisse unregelmäßig und unterschiedlich groß sind...

Gibt es da keinen anderen Weg für? Z.B. dass ich mir qusi immer eine Linie von KI zu Spieler denke und überprüfe ob diese ein Shape kreuzt? gibt es da irgendwie eine Möglichkeit für?
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 14:46

Wie genau ist denn das Ganze implementiert?
Das ist jetzt die Stelle, wo Quelltext ganz hilfreich ist.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#5

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 14:49
Pathfinding ist glaube ich nicht der richtige Begriff. Der dient dazu, einen Weg (mit Kurven) von A nach B zu finden.
Um zu erkennen, ob ein Hindernis zwischen zwei Punkten A und B ist, kann man die Strecke von A nach B nehmen und prüfen, ob diese Linie eines der Hindernisse durchquert.
Dies kann man damit berechnen, indem man prüft ob die Strecke AB eine der Grenzlininen eines der Hindernisse durchquert. Bspw. wenn ein Hindernis durch Punkte V-W-X-Y-Z definiert ist, prüft man ob die Strecke AB eine der Strecken VW, WX, XY, YZ, ZV schneidet. Wenn ja, würde das Projektil auf das Hindernis treffen. (Vllt. hat Shapes dafür bereits eine Funktion).
Damit hast du das Problem auf das Berechnen des Schnittpunkts zweier Strecken reduziert, das sollte einfach genug sein.
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#6

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 14:51
Ich hab ja noch keinen Quelltext... bzw klar, mein Spiel an sich aber ja noch nichts für die Lösung des Problems. Glaube kaum dass das Spiel hierbei hilft... Diese gedachte Linie von der ich gesprochen habe war ja nur eine Idee...
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 16:16
Raycasting ist wahrscheinlich was du brauchst:

http://www.redblobgames.com/articles/visibility/
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#8

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 17:11
Pathfinding ist glaube ich nicht der richtige Begriff. Der dient dazu, einen Weg (mit Kurven) von A nach B zu finden.
Um zu erkennen, ob ein Hindernis zwischen zwei Punkten A und B ist, kann man die Strecke von A nach B nehmen und prüfen, ob diese Linie eines der Hindernisse durchquert.
Dies kann man damit berechnen, indem man prüft ob die Strecke AB eine der Grenzlininen eines der Hindernisse durchquert. Bspw. wenn ein Hindernis durch Punkte V-W-X-Y-Z definiert ist, prüft man ob die Strecke AB eine der Strecken VW, WX, XY, YZ, ZV schneidet. Wenn ja, würde das Projektil auf das Hindernis treffen. (Vllt. hat Shapes dafür bereits eine Funktion).
Damit hast du das Problem auf das Berechnen des Schnittpunkts zweier Strecken reduziert, das sollte einfach genug sein.
wie frage ich denn ab, ob eine Strecke einer der Grenzlinien eines der Hindernisse durchquert?
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 17:18
wie frage ich denn ab, ob eine Strecke einer der Grenzlinien eines der Hindernisse durchquert?
Kannst du denn die Strecke zwischen dir und dem Gegner bestimmen? Hast du diese Information schon?
  Mit Zitat antworten Zitat
Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#10

AW: Vektoriales Rechnen

  Alt 12. Mai 2017, 17:23
hätte jetzt gesagt dass ich irgendwie einen Vektor mache indem ich einfach die beiden Koordinaten voneinander abziehe... aber diese Idee ist noch nicht ganz ausgereift... jemand eine Idee dafür?
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 07:51 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