Statt feld und EnemyPos brauchst du nurnoch ein array. in meinem Code habe ich ein dynamisches array (kann die größe zur laufzeit ändern) beschrieben. Ein statisches Array geht natürlich auch.
das TFieldTile hatte ich direkt darüber definiert, es muss aber in den "Type" Abschnitt der Unit(da wo auch TForm = class(TForm)... steht).
ProcessTile ist eine Prozedur, die nur in deiner TimerProzedur aufgerufen werden kann.
Das kommt zwischen das "procedure TimerProcedure" und das begin direkt dadrunter.
Das ist halt ein bezeichner, der nur innerhalb dieser Methode gültig ist, wie lokale Variablen.
Alle Abschnitte in dem Beispiel mit geschweiften Klammern muss du durch Code ersetzen.
z.b. {X-Y Schleife} mit
das {wenn zielfeld geblockt} halt mit einer if klausel, die abfragt, ob auf dem feld ax+mx ay+my ein gegner steht. Dadurch stehen dann auch keine 2 begin's hintereinander
mx und my steht für movex und movey. Das gibt einfach nur die bewegungsrichtung des gegners an
beide variablen müssen werte zwischen -1 und 1 haben.
ProcessTile ist eine sich selbst aufrufende Methode (Rekursiv siehe
http://de.wikipedia.org/wiki/Rekursion oder meine Signatur).
Sollte dir nach diesem Post immernoch nicht klar sein, was ich meine, so guck dir doch bitte einfach ein Tutorial zum Thema Objektorientierte Programmierung (Prozeduren und Records) and:
http://de.wikibooks.org/wiki/Programmie ... Funktionen
http://de.wikibooks.org/wiki/Programmie ... l:_Records
Wenn du dann immernoch nicht weiterweißt, darfst du gerne wieder unsere Hilfe in Anspruch nehmen
Und zu guter letzt: es gibt keine dummen Fragen.
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.