2D Gegner soll flüchten!
Verfasst: 26.05.2008 17:51
Ich habe ein Fangenspiel gemacht, für 2 Spieler. Irgendwann wollte ich dann auch ein Computer gegner machen. Wenn der Computer Fänger ist ist es ja leicht zu programmieren.
Nur wenn er Flüchten muss, habe ich kein Plan.....
Ein Boost habe ich geschafft, also wie Nitro in einem Auto Spiel. Und auch der Computer kann mit den Boost umgehen
.
Einigermaßen habe ich es schon mit der Flucht hinbekommen.... aber noch nicht so ganz.
Hat wer vielleicht ne Idee?
PS1: Wundert euch nicht wegen den Namen der Variablen, es ist in dem Style meiner Lieblingsserie gemacht^^xD
PS2: ich habe noch kein Code reingemacht........
Nur wenn er Flüchten muss, habe ich kein Plan.....
Ein Boost habe ich geschafft, also wie Nitro in einem Auto Spiel. Und auch der Computer kann mit den Boost umgehen

Einigermaßen habe ich es schon mit der Flucht hinbekommen.... aber noch nicht so ganz.
Hat wer vielleicht ne Idee?
PS1: Wundert euch nicht wegen den Namen der Variablen, es ist in dem Style meiner Lieblingsserie gemacht^^xD
PS2: ich habe noch kein Code reingemacht........
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"Vollbild")
InitMovie()
LoadMovie(0,"F:\Kai´s Spiel\Sounds\Agni Kai Avatar.mp3")
PlayMovie(0,0)
LoadSprite(0,"F:\Kai´s Spiel\Pics\LandKarte.bmp",0)
LoadSprite(1,"F:\Kai´s Spiel\Pics\GrüneBalken.bmp",0)
LoadSprite(2,"F:\Kai´s Spiel\Pics\Aang.bmp",0)
LoadSprite(3,"F:\Kai´s Spiel\Pics\Zuko.bmp",0)
LoadSprite(4,"F:\Kai´s Spiel\Pics\ButtonBlau.bmp",0)
LoadSprite(5,"F:\Kai´s Spiel\Pics\ButtonRot.bmp",0)
LoadSprite(6,"F:\Kai´s Spiel\Pics\GrenzeX.bmp",0)
LoadSprite(7,"F:\Kai´s Spiel\Pics\GrenzeY.bmp",0)
AangX = 390
AangY = 2
ZukoX = 390
ZukoY = 523
DranIstA = 0
DranIstB = 0
LadenAX = 0
LadenAY = 550
LadenBX = 0
LadenBY = 575
GrenzeAX = 0
GrenzeAY = 543
GrenzeBX = 0
GrenzeBY = 0
GrenzeCX = 0
GrenzeCY = 0
GrenzeDX = 798
GrenzeDY = 0
LandKarteX = 0
LandKarteY = 0
GrueneBalkenX = 0
GrueneBalkenY = 545
Compi = 0
WartenA = 0
WartenB = 0
Dauer = 0
Repeat
If DranIstA = 1 And WartenB = 0 And WartenA < 100
WartenA + 3
EndIf
If WartenA > 98 And WartenB = 0
WartenB = 1
WartenA = 0
EndIf
If WartenB = 1 And DranIstA = 0
WartenB = 0
EndIf
If Compi = 1 And (ZukoX > AangX + 70 Or ZukoX + 70 < AangX Or ZukoY > AangY + 70 Or ZukoY + 70 < AangY)
Boost2 = 2
EndIf
If Compi = 1 And DranIstA = 1 And WartenB = 1
If ZukoX > AangX
ZukoX - (Boost2)
EndIf
If ZukoX < AangX
ZukoX + (Boost2)
EndIf
If ZukoY > AangY
ZukoY - (Boost2)
EndIf
If ZukoY < AangY
ZukoY + (Boost2)
EndIf
EndIf
If LadenAX > 788
LadenAX = 788
EndIf
If LadenBX > 788
LadenBX = 788
EndIf
If Compi = 1 And DranIstA = 0 And (ZukoX + 220 < AangX Or ZukoY + 220 < AangY Or ZukoX > AangX - 220 Or ZukoY > AangY - 220)
If ZukoX < AangX And ZukoX > 100
ZukoX - (Boost2)
EndIf
If ZukoY < AangY And ZukoY > 80
ZukoY - (Boost2)
EndIf
If ZukoX > AangX And ZukoX < 681
ZukoX + (Boost2)
EndIf
If ZukoY > AangY And ZukoY < 451
ZukoY + (Boost2)
EndIf
If ZukoX < 101 And ZukoY < AangY And ZukoY < 80
ZukoY - (Boost2)
EndIf
If ZukoX < 101 And ZukoY > AangY And ZukoY < 465
ZukoY + (Boost2)
EndIf
If ZukoX > 680 And ZukoY < AangY And ZukoY < 80
ZukoY - (Boost2)
EndIf
If ZukoX > 680 And ZukoY > AangY And ZukoY > 465
ZukoY + (Boost2)
EndIf
If ZukoY < 81 And ZukoX < AangX And ZukoX > 100
ZukoX - (Boost2)
EndIf
If ZukoY < 81 And ZukoX > AangX And ZukoX > 681
ZukoX + (Boost2)
EndIf
If ZukoY > 450 And ZukoX < AangX And ZukoX > 100
ZukoX - (Boost2)
EndIf
If ZukoY > 450 And ZukoX > AangX And ZukoX > 681
ZukoX + (Boost2)
EndIf
EndIf
LadenAX + 1
LadenBX + 1
Boost1 = 3
Boost2 = 3
If DranIstA = 0
WerIstDran = 0+256*0+256*256*255
EndIf
If DranIstA = 1
WerIstDran = 255+256*0+256*256*0
EndIf
FlipBuffers()
ClearScreen((WerIstDran))
DisplayTransparentSprite(0,LandKarteX,LandKarteY)
DisplayTransparentSprite(1,GrueneBalkenX,GrueneBalkenY)
DisplayTransparentSprite(2,AangX,AangY)
DisplayTransparentSprite(3,ZukoX,ZukoY)
DisplayTransparentSprite(4,LadenAX,LadenAY)
DisplayTransparentSprite(5,LadenBX,LadenBY)
DisplayTransparentSprite(6,GrenzeAX,GrenzeAY)
DisplayTransparentSprite(6,GrenzeBX,GrenzeBY)
DisplayTransparentSprite(7,GrenzeCX,GrenzeCY)
DisplayTransparentSprite(7,GrenzeDX,GrenzeDY)
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Space) And Compi = 0
Compi = 1
EndIf
If KeyboardReleased(#PB_Key_Space) And Compi = 1
Compi = 0
EndIf
If KeyboardPushed(#PB_Key_Return) And LadenAX > 0 And (KeyboardPushed(#PB_Key_Up) Or KeyboardPushed(#PB_Key_Down) Or KeyboardPushed(#PB_Key_Left) Or KeyboardPushed(#PB_Key_Right))
Boost1 = 5
LadenAX - 5
EndIf
If (KeyboardPushed(#PB_Key_Tab) And LadenBX > 0 And KeyboardPushed(#PB_Key_W) Or KeyboardPushed(#PB_Key_S) Or KeyboardPushed(#PB_Key_D) Or KeyboardPushed(#PB_Key_A)) And Compi = 0
Boost2 = 5
LadenBX - 5
EndIf
If (Compi = 1 And DranIstA = 1 And ZukoX < AangX + 70 And ZukoX + 70 > AangX And ZukoY < AangY + 70 And ZukoY + 70 > AangY And LadenBX > 0) Or (Compi = 1 And (LadenBX > 760 Or Dauer = 1))
Boost2 = 4
LadenBX - 5
EndIf
If Compi = 1 And (LadenBX > 760 Or Dauer = 1)
Dauer = 1
EndIf
If LadenBX < 410 And Compi = 1 And Dauer = 1
Dauer = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
AangY - (Boost1)
If AangY < 2
AangY = 2
EndIf
EndIf
If KeyboardPushed(#PB_Key_Down)
AangY + (Boost1)
If AangY > 523
AangY = 523
EndIf
EndIf
If KeyboardPushed(#PB_Key_Right)
AangX + (Boost1)
If AangX > 778
AangX = 778
EndIf
EndIf
If KeyboardPushed(#PB_Key_Left)
AangX - (Boost1)
If AangX < 2
AangX = 2
EndIf
EndIf
If KeyboardPushed(#PB_Key_W) And Compi = 0
ZukoY - (Boost2)
EndIf
If KeyboardPushed(#PB_Key_S) And Compi = 0
ZukoY + (Boost2)
EndIf
If KeyboardPushed(#PB_Key_D) And Compi = 0
ZukoX + (Boost2)
EndIf
If KeyboardPushed(#PB_Key_A) And Compi = 0
ZukoX - (Boost2)
EndIf
If ZukoY < 2
ZukoY = 2
EndIf
If ZukoY > 523
ZukoY = 523
EndIf
If ZukoX > 778
ZukoX = 778
EndIf
If ZukoX < 2
ZukoX = 2
EndIf
If AangX > ZukoX + 20 Or AangX + 20 < ZukoX Or AangY > ZukoY + 20 Or AangY + 20 < ZukoY
DranIstB = 0
EndIf
If DranIstA = 0 And AangX < ZukoX + 20 And AangX + 20 > ZukoX And AangY < ZukoY + 20 And AangY + 20 > ZukoY And DranIstB = 0
DranIstA = 1
DranIstB = 1
EndIf
If DranIstA = 1 And AangX < ZukoX + 20 And AangX + 20 > ZukoX And AangY < ZukoY + 20 And AangY + 20 > ZukoY And DranIstB = 0
DranIstA = 0
DranIstB = 1
EndIf
Until KeyboardPushed(1)