![]() |
Einfachste KI für Gegner
Hallo Leute
Ich bin daran, ein kleines Spiel zu proggen (2D). Ich habe da so Gegner, die ich per Zufall in eine Richtung laufen lassen will (links, rechts, oben, unten). Ich habe mir gedacht, ich könnte dies mit Hilfe von Random lösen. Leider weiss ich nicht genau wie implementieren, damit die Laufrichtung wirklich (oder zumindest ziemlich) zufällig ist. Kann mir da jemand helfen? |
Re: Einfachste KI für Gegner
Wie lang soll den dein Gegner in eine Richtung laufen ???
Ansonsten fängst du mit einer belieb. Richtung an, und entscheidest dann, wenn er gegen ein Hindernis läuft, eine neue Richtung. Deine SpielerKoordinaten sind in PIXEL angegeben. Du könntest dazu Variablen einführen. X_Abzug und Y_Abzug.
Delphi-Quellcode:
Soll er nun hoch laufen, definierst du:
X_Neu := X_Alt + X_Abzug;
Y_Neu := Y_Alt + Y_Abzug; Y_Abzug := - 10; (Läuft jetzt 10 Pixel nach oben) X_Abzug := 0; (Bleibt an der gleichen Stelle X) Dann sieht das so aus (Rechnung):
Delphi-Quellcode:
X_Neu := X_Alt + 0;
Y_Neu := Y_Alt - 10; Hoffe das hilgt devnull |
Re: Einfachste KI für Gegner
Zitat:
Mein Problem ist ja, wie kann ich die neue Richtung per Zufall bestimmen? |
Re: Einfachste KI für Gegner
Ich weis ja nich, wie dein Spielfeld aussieht, aber du nimmst einfach Zufallszahlen:
1.) timetomove (für Zeit, die es in eine Richtung läuft) 2.) rnd_richtung := Random (100);
Delphi-Quellcode:
usw.
if (rnd_richtung <= 25) then begin
X_Abzug := 10; Y_Abzug := 0; (läuft nach rechts) end; if (rnd_richtung <= 50) and (rnd_richtung > 25) then begin X_Abzug := -10; Y_Abzug := 0; (läuft nach links) end; Du kannst ja per Timer, die verstrichene Zeit messen und die mit timetomove abgleichen. Wenn gleich neue Zeit und neue Richtung ermitteln. devnull :) |
Re: Einfachste KI für Gegner
Man kann doch Bereiche angeben, in denen man die Zufallszahl habenn will, dann kannst du doch einfach sagen, wenn 1, dann gerade aus, wenn 2 dann nach unten usw.
Nur mal so einen kleine Idee. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 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