ich mache gerade ein 2D Spiel und weiß nicht wie ich es machen kann das es mehrere Runden gibt ohne jeder einzelnen Koordinaten zu geben.
Ich hab überlegt ob es evtl. mit Structuren geht, nur leider weiß ich nicht wie ich das machen soll.
Hier der Code( mit sehr vielen Fehlern)
Code: Alles auswählen
#Number_of_Rounds = 10
Global Leben.l
Global Staerke.l
Global Verteidigung.l
Global Geschwindigkeit.l
Global Ausdauer.l
Global Glueck.l
Structure Runde
xPosAngriff.f
yPosAngriff.f
xPosHP.f
yPosHP.f
xPosStaerke.f
yPosStaerke.f
xPosVerteidigung.f
yPosVerteidigung.f
xPosGeschwindigkeit.f
yPosGeschwindigkeit.f
xPosAusdauer.f
yPosAusdauer.f
xPosGlueck.f
yPosGlueck.f
xPosBox.f
yPosBox.f
Box.l
EndStructure
Leben = 180
Staerke = 10
Verteidigung = 100
Geschwindigkeit = 10
Ausdauer = 10
Glueck = 10
Global Schlag.l
Schlag = 100 + Staerke - Verteidigung
Global Dim *Runden.Runde(#Number_of_Rounds -1)
For i=0 To #Number_of_Rounds
Next
InitKeyboard()
If InitSprite() = 0
MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
End
EndIf
If OpenWindow(0, 0, 0, 1220, 800, "...", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160, 1, 0, 0)
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
End
EndIf
EndIf
LoadSprite(0 ,"Data\Anzeige.bmp")
Procedure RenderGame(*R.Runde)
Repeat
Repeat
DisplayTransparentSprite(0, 0, 0)
StartDrawing(WindowOutput(0))
DrawText(13, 20, "HP: "+ Str(Leben), RGB(255, 255, 255), RGB(0, 0, 0))
DrawText(13, 60, "Stärke: "+ Str(Staerke), RGB(255, 255, 255), RGB(0, 0, 0))
DrawText(13, 80, "Verteidigung: "+ Str(Verteidigung), RGB(255, 255, 255), RGB(0, 0, 0))
DrawText(13, 100, "Geschwindigkeit: "+ Str(Geschwindigkeit), RGB(255, 255, 255), RGB(0, 0, 0))
DrawText(13, 120, "Ausdauer: "+ Str(Ausdauer), RGB(255, 255, 255), RGB(0, 0, 0))
DrawText(13, 140, "Glück: "+ Str(Glueck), RGB(255, 255, 255), RGB(0, 0, 0))
StopDrawing()
ExamineKeyboard()
If KeyboardReleased(#PB_Key_A)
StartDrawing(WindowOutput(0))
DrawText(340, 300, "Schlag", RGB(255, 255, 255), RGB(0, 0, 0))
DrawText(340, 320, Str(Schlag), RGB(255, 255, 255), RGB(0, 0, 0))
StopDrawing()
Zufall = Random(4)
Schlag - Staerke - RGlueck + Verteidigung
If Ausdauer > 0
Ausdauer - 1
If Zufall = 1
Staerke + Random(10)
EndIf
If Zufall = 2
Verteidigung + Random(10)
EndIf
If Zufall = 3
Geschwindigkeit + Random(10)
EndIf
If Zufall = 4
Glueck + Random(10)
EndIf
EndIf
If Ausdauer = 0 And Leben = 0
Leben - 10
EndIf
RGlueck = Random(Glueck)
Schlag + Staerke + RGlueck - Verteidigung
If Schlag < 0
Schlag = 0
EndIf
If Leben > 0
Leben - Schlag
EndIf
EndIf
Event = WindowEvent()
If Event = #PB_Event_CloseWindow
End
EndIf
If Leben = 0
EndIf
If Leben < 0
Leben = 0
EndIf
ForEver
Until Event = 0
EndProcedure
For i = 0 To #Number_of_Rounds
RenderGame(*Runden(i))
Next i