Thema: Delphi Bewegung in 2D-Welten

Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Bewegung in 2D-Welten

  Alt 21. Feb 2008, 10:38
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.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat