![]() |
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. ;) |
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:
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.
// 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))) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr. |
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