AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einfachste KI für Gegner

Ein Thema von Dagon · begonnen am 29. Nov 2003 · letzter Beitrag vom 29. Nov 2003
Antwort Antwort
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#1

Einfachste KI für Gegner

  Alt 29. Nov 2003, 10:21
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?
  Mit Zitat antworten Zitat
Benutzerbild von devnull
devnull

Registriert seit: 5. Okt 2003
362 Beiträge
 
Delphi 7 Personal
 
#2

Re: Einfachste KI für Gegner

  Alt 29. Nov 2003, 10:25
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:
  X_Neu := X_Alt + X_Abzug;
  Y_Neu := Y_Alt + Y_Abzug;
Soll er nun hoch laufen, definierst du:
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
-- Never change a running system --
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#3

Re: Einfachste KI für Gegner

  Alt 29. Nov 2003, 10:29
Zitat von devnull:
Wie lang soll den dein Gegner in eine Richtung laufen ???
Das sollte auch per Zufall bestimmt werden.

Mein Problem ist ja, wie kann ich die neue Richtung per Zufall bestimmen?
  Mit Zitat antworten Zitat
Benutzerbild von devnull
devnull

Registriert seit: 5. Okt 2003
362 Beiträge
 
Delphi 7 Personal
 
#4

Re: Einfachste KI für Gegner

  Alt 29. Nov 2003, 10:34
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:
      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;
usw.
Du kannst ja per Timer, die verstrichene Zeit messen und die mit timetomove abgleichen. Wenn gleich neue Zeit und neue Richtung ermitteln.


devnull
-- Never change a running system --
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: Einfachste KI für Gegner

  Alt 29. Nov 2003, 10:37
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.
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz