Zum einfügen lösche bei
Code: Alles auswählen
PlayerX+MoveX
PlayerY+MoveY
Dann füge nach der for Schleife (for x=0 to #W bis next x) folgenden Code ein:
Code: Alles auswählen
PlayerX+MoveX
Hit=0
For x=0 To #W
For y=0 To #H
If Feld(x,y)=1
If BoxKolli(x*TileW,y*TileH,TileW,TileH,PlayerX,PlayerY,PlayerW,PlayerH)
Hit=1
If MoveX<0
PlayerX=X*TileW+TileW
ElseIf MoveX>0
PlayerX=X*TileW-PlayerW
EndIf
EndIf
EndIf
Next y
Next x
@Josef Sniatecki: Interessanter Lösung. Seh ich mir bei zeiten mal genauer an.
Edit Fang mal bei deinem Enumeration mal mit 1 an sonst ist #Collision_Top=#False, was zu Fehlern führt. Wenn man gegen eine Wand läuft und gleichzeitig nach oben läuft (PlayerY-...), bleibt man hängen.