Entwickler-Ecke
Multimedia / Grafik - Simple KI (grafik1 geht um button herum zu grafik2)
Pyr0cracker - Do 20.03.03 14:47
Titel: Simple KI (grafik1 geht um button herum zu grafik2)
hi, ich wollte mal eine ganz simple ki machen, hab sie jetzt schon so weit fertig, das sie den spieler verfolgt, möchte aber noch das sie um eine dritte grafik herumgeht, habs schon probiert aber geht nich.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| if feind.top > stein.top then if feind.top < stein.top + stein.height then if feind.left > stein.left then feind.top:= feind.top-1;
if feind.top > stein.top then if feind.top < stein.top + stein.height then if feind.left < stein.left + stein.width then feind.top:= feind.top+1; |
etc...
und noch für die ober- und unterseite.
danke schon mal,
Delphianer23 - Do 20.03.03 23:49
kannst du mir ein paar mehr allgemeine Infos geben.
Wie ist das Bewegen allgemein geregelt?
Ist es eine Art Schachfeld oder ist es "fließend" ?
Kannst du ein bißchen Code des Bewegens allgemein posten?
Pyr0cracker - Fr 21.03.03 10:55
fließend, ich bewege die grafik mit .top und .left +1 oder -1.
wie ich das mit "schachfeldern" funktioniert und wie ich das machen soll weiss ich gar nicht.
Delphianer23 - Fr 21.03.03 19:05
du solltest es so machen:
z.B
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| bewegung.x:=5,34; bewegung.y:=-4,5;
feind.top:=feind.top+bewegung.y;
if feind.top > stein.top then if feind.top < stein.top + stein.height then if feind.left > stein.left then if feind.left < stein.left+ stein.width then begin feind.top:= feind.top-bewegung.y; // bewegung.x auf jeden Fall höher setzen end;
feind.left:=feind.left+bewegung.x
if feind.top > stein.top then if feind.top < stein.top + stein.height then if feind.left > stein.left then if feind.left < stein.left+ stein.width then begin feind.left:= feind.left-bewegung.x; //bewegung.y auf jeden Fall höher setzen end; |
falls eine x oder y Bewegung den Körper in den Feind reinführt, wird
diese Rückgängig gemacht.
Natürlich ist dies sehr anfällig für Ecken. Außerdem könnte ein
Feind an einem Stück hängenbleiben, wenn das Ziel z.B genau vertikal
dazusteht. Deshalb die Erhöhung der x bzw y Bewegung.
Außerdem sollte der Feind nie z.b ganz am Anfang in einem Körper reingeraten. Sobald er in einem Drinnen wäre kommt er nie wieder raus.
Aber darauf kann man ja beim plazieren achten.
Ich hab nich so genau drüber nachgedacht. Vielleicht ist es Müll, aber auf
den ersten Blick müsste es funktionieren. Wie siehen denn die Steine
genau aus? SInd es Wände? SInd alle eckig? Haben sie unregelmäßige Kanten für den Feind?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!