Haltet mich für blöd aber irgendwie bekomm ichs nich hin.
Also:
Hier mal der der wichtigste code:
Code: Alles auswählen
Procedure CheckCollision(SpeedX.f, SpeedY.f)
Shared spieler_x,spieler_y
For x=0 To 20-1
For y=0 To 15-1
If Welt(x, y) <> 0
If SpriteCollision(#Spieler, Int(spieler_x + SpeedX), Int(spieler_y + SpeedY), Welt(x, y), x*32, y*32)
ProcedureReturn 1
EndIf
EndIf
Next y
Next x
EndProcedure
Procedure CheckSterben(SpeedX.f, SpeedY.f)
Shared spieler_x,spieler_y
For x=0 To 20-1
For y=0 To 15-1
If Tode(x, y) <> 0
If SpriteCollision(#Spieler, Int(spieler_x + SpeedX), Int(spieler_y + SpeedY), Tode(x, y), x*32, y*32)
ProcedureReturn 1
EndIf
EndIf
Next y
Next x
EndProcedure
Procedure bewegen()
Shared spieler_x,spieler_y,speed_bewegung,spieler_aussehen
If KeyboardPushed(#PB_Key_Right) And spieler_x < 625
If CheckCollision(speed_bewegung, 0) = 0 And CheckSterben(speed_bewegung, 0) = 0
spieler_x + speed_bewegung ; Spieler bewegen
spieler_aussehen = #Spieler ; Bildwechsel
ElseIf CheckSterben(speed_bewegung, 0) = 1
spieler_x = 0
spieler_y = 0
EndIf
EndIf
If KeyboardPushed(#PB_Key_Left) And spieler_x > 0
If CheckCollision(speed_bewegung-4, 0) = 0 And CheckSterben(speed_bewegung, 0) = 0
spieler_x - speed_bewegung
spieler_aussehen = #Spieler_2 ; Bild wechsel
ElseIf CheckSterben(speed_bewegung-4, 0) = 1
spieler_x = 0
spieler_y = 0
EndIf
EndIf
If KeyboardPushed(#PB_Key_Up) And spieler_y > 0
If CheckCollision(0, speed_bewegung-4) = 0 And CheckSterben(speed_bewegung, 0) = 0
spieler_y - speed_bewegung
ElseIf CheckSterben(speed_bewegung-4, 0) = 1
spieler_x = 0
spieler_y = 0
EndIf
EndIf
If KeyboardPushed(#PB_Key_Down) And spieler_y < 445
If CheckCollision(0, speed_bewegung) = 0 And CheckSterben(speed_bewegung, 0) = 0
spieler_y + speed_bewegung
ElseIf CheckSterben(speed_bewegung, 0) = 1
spieler_x = 0
spieler_y = 0
EndIf
EndIf
EndProcedure
Procedure welt_zeichnen()
For x=0 To 20
For y=0 To 15
If Welt(x, y) <> 0
DisplaySprite(Welt(x, y), x*32, y*32)
EndIf
Next y
Next x
EndProcedure
Procedure tode_zeichnen()
For x=0 To 20
For y=0 To 15
If Tode(x, y) <> 0
DisplaySprite(Tode(x, y), x*32, y*32)
EndIf
Next y
Next x
EndProcedure
Die Maps werden halt per Dim Welt(20,15) und Dim Tode(20,15)
gemacht.
Kannst du es für mich dummie ganz genau erklären?