Kollisionsabfrage für Gegner
Verfasst: 06.03.2009 00:00
Hallo, ich bins mal wieder, und nein, diesmal ist es kein saudummer Fehler von mir und ich versuch, so ziemlich alles, was man über den Code wissen muss, zu posten.
Also, hier die Frage, ich zeichne ein Jump'n'run-Level via
und frage mit diesem Code
für jedes Tile ab, (durch die man laufen können soll) ob man durch das nächste tile noch laufen kann. das wären die Tiles 0, 13,14,15,16,17
Muss ich jetzt auch für jeden Gegner die Kollision so berechnen, oder gibt es da einen einfacheren und vor allem schnelleren Weg?
Also, hier die Frage, ich zeichne ein Jump'n'run-Level via
Code: Alles auswählen
DataSection
leveldaten:
data.l 1,1,1,1,1,1
data.l 1,0,0,0,0,1
data.l 1,1,1,1,1,1
;ist natürlich nicht das ganze Level
Procedure LevelEinlesen()
Restore leveldata
For Y = 0 To 30
For X = 0 To 24
Read LevelDaten(Y,X)
Next
Next
EndProcedure
Procedure LevelAusgeben()
For Y = 0 To 30
For X = 0 To 24
For i = 1 To 40
If LevelDaten(Y,X) = i
DisplayTransparentSprite(i,X * 32, Y * 32 - scroll_y)
EndIf
Next
Next
Next
EndProcedure
Code: Alles auswählen
If KeyboardPushed(#PB_Key_Left)
If LevelDaten(((player_y +16)+ scroll_y) /32,(player_x-4) /32)=0 And LevelDaten(((player_y +48)+ scroll_y) /32,(player_x-4)/32)=0
player_x-4
endif
ElseIf KeyboardPushed(#PB_Key_Right)
If LevelDaten(((player_y +16)+ scroll_y) /32,(player_x +32) /32)=0 And LevelDaten(((player_y +48)+ scroll_y) /32,(player_x +32)/32)=0
player_x+4
EndIf
EndIf
Muss ich jetzt auch für jeden Gegner die Kollision so berechnen, oder gibt es da einen einfacheren und vor allem schnelleren Weg?