Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bewegung in 2D-Welten (https://www.delphipraxis.net/108830-bewegung-2d-welten.html)

Nuclear-Ping 21. Feb 2008 09:27

Re: Bewegung in 2D-Welten
 
Er möchte keine KI, er möchte einfach seine Spielfigur in seine "Spielwelt" setzen und sie soll damit passend interagieren.

Deswegen kamen oben in den ersten zwei Antworten schon die Empfehlungen sich den Code von Aspirin oder Andorra anzuschauen, ggf. die Forensuche zu benutzen. ;)

Nikolas 21. Feb 2008 09:38

Re: Bewegung in 2D-Welten
 
Als Welt könntest du ein 2DArray of Boolean benutzen. Wenn dein Gegner dann in einem Feld steht, kannst du recht einfach einen Zufallszug ausführen lassen:
Delphi-Quellcode:
// Gegner steht in A(x,y):
cnt :=0;
possible = array[8] of TPoint
for i in [-1,0,1] do
  for j in [-1,0,1] do
  if i==j and j==0 do continue;
  if A[x+i,y+j] do
    cnt := cnt+1;
    possible[cnt]=(x+i,y+j); // eine Liste der Zugmöglichkeiten wird erstellt:
  // Ein true-Feld im Array steht für eine betrerbare Fläche, false für eine Wand.
  // jetzt weisst du also, in welche Richtungen du laufen kannst.
  Gegner.laufeNach(possible(random(cnt)))
Jetzt kannst du z.B. mit einem Timer die Figur langsam zur nächsten Zelle bewegen und sobald sie dort angekommen ist, wieder diesen Code ausführen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz