Tilemap kolision
Verfasst: 25.03.2008 01:12
hi ich hab mich mal an einem tilemap versucht und dazu ein Beispiel aus dem Forum umgeschrieben. Nun hab ich noch1 großes und 1 kleineres Problem:
1. Bei der Data ist das irgendwie umgekehrt, als es dann dargestellt wird (kleineres)
2. Es wurde zwar schon öfters erklärt, wie man das mit der Kollision macht, ich habs aber leider immer noch nicht verstanden. Könnte mir wer bite nochmal auf meinen Code bezogen, dass erklären, sodass, z.B. man nur auf die 1er Sprites kann
Edit: benutze v. 4.00
1. Bei der Data ist das irgendwie umgekehrt, als es dann dargestellt wird (kleineres)
2. Es wurde zwar schon öfters erklärt, wie man das mit der Kollision macht, ich habs aber leider immer noch nicht verstanden. Könnte mir wer bite nochmal auf meinen Code bezogen, dass erklären, sodass, z.B. man nur auf die 1er Sprites kann
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(1024,768,32,"Tiletest")
CreateSprite(0,64,64)
StartDrawing( SpriteOutput(0) )
Circle(32,32,16, RGB(255, 0, 0))
StopDrawing()
CreateSprite(1,64,64)
StartDrawing( SpriteOutput(1) )
Box(0,0,64,64, RGB(0, 0, 100))
StopDrawing()
CreateSprite(2,64,64)
StartDrawing( SpriteOutput(2) )
Box(0,0,64,64, RGB(0, 0, 200))
StopDrawing()
tReihen = 3 - 1
tSpalten = 5 - 1
Restore Karte
Dim map.l (tReihen, tSpalten)
For pReihen = 0 To tReihen
For pSpalten = 0 To tSpalten
mapdaten.b
Read mapdaten
map(pReihen, pSpalten) = mapdaten
Next
Next
Repeat
ExamineKeyboard()
StartDrawing( ScreenOutput() )
DrawText(100,100, Str(offX)+", "+Str(offY) )
StopDrawing()
If KeyboardPushed(#PB_Key_Right)
offX - 2
EndIf
If KeyboardPushed(#PB_Key_Left)
offX + 2
EndIf
If KeyboardPushed(#PB_Key_Up)
offY + 2
EndIf
If KeyboardPushed(#PB_Key_Down)
offY - 2
EndIf
For pReihen = 0 To tReihen
For pSpalten = 0 To tSpalten
DisplaySprite( map(pReihen, pSpalten) , offX + (pReihen * 64), offY + (pSpalten * 64) )
Next
Next
DisplayTransparentSprite(0, 1024/2, 768/2)
FlipBuffers()
ClearScreen(0)
Delay(30)
Until KeyboardReleased(#PB_Key_Escape)
DataSection
Karte:
Data.b 1, 2, 1, 1, 1
Data.b 2, 1, 2, 1, 1
Data.b 1, 2, 1, 1, 1
EndDataSection