Seite 1 von 1
Shooter-KI
Verfasst: 31.01.2005 16:18
von AndyX
HALLO!
Ich möchte einen Shooter programmieren, und weiß nicht wie ich die Gegner-KI mache. Das Spiel schaut so aus: Links steht der Spieler, Rechts der Gegner, und man muss halt den Gegner abfetzen.

Der Gegner soll Ballern, Ducken, Springen können.
Ich hab echt keinen Plan wie ich das mach.
Hoffe, ihr könnt mir helfen.
Mfg,
AndyX
Verfasst: 31.01.2005 17:10
von Hroudtwolf
Hallo erstmal...
Nix leichter als das !
nehmen wir mal an du hast ein Spiel in der Vogelperspektive gemacht !?
Rechts steht dein Gegner und links oben irgendwo du...
damit dein Gegner dich jagen tut.Musst du ihm einen Jagdinstinkt verpassen.
Das geht ungefähr so :
Code: Alles auswählen
Procedure GegnersuchtSpieler()
if spielerX<GegnerX:GegnerX-1:endif
if spielerX>GegnerX:GegnerX+1:endif
if spielerY<GegnerY:GegnerY-1:endif
if spielery>GegnerY:GegnerY+1:endif
if SpriteCollison (SpielerSprite,SpielerX,SpielerY,GegnerSprite,GegnerX,GegnerY)
GameOver=1
endif
ProcedureReturn GameOver
EndProcedure
Das Gleiche kannst du nun auch mit deinen Geschossen und dem gegner machen.Allerding solltest du hier eine mindest Entfernung zum Gechoss festlegen. Damit der Gegner sich ducken oder springen kann.
Am besten du experimentierst mit dieser Methode mal rum. Hab ich damals auch gemacht und habe so verschiedene Arten von massgeschneiderter KI hinbekommen.
Verfasst: 31.01.2005 17:50
von AndyX
nein es is nicht von oben. ich weiß nur nicht wie ich das mache soll das er manchmal duckt oder springt oder schießt, und manchmal nicht.
Trotzdem danke für die antwort.
Mfg,
AndyX
KI
Verfasst: 31.01.2005 17:59
von Hroudtwolf
Du musst deinem Gegner eigentlich nur eine eigene Einschätung der Lage geben. Und damit er nicht unbesiegbar ist das ganze durch ein zufallssystem stören.
Ungefähr so:
Code: Alles auswählen
Distanz=50
if random (2)=1;Hier werden die Sinne gestört
if geschossX>GegnerX-Distanz
Huepfen=1
endif
endif
Hierbei wird die Variable HUEPFEN auf 1 gesetzt wenn das Geschoss
weniger als 50 Pixel vom Gegner entfernt ist.
Wird z.B. in einer anderen IF Abfrage dann geprueft ob HUEPFEN=1
dann wird deine Hüpfprozedur gestartet.
ist doch ganz einfach !
