Code: Alles auswählen
; Test von Folker Linstedt aka xaby
; PB 4.x
; 2007|08|13
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 or later", 0)
End
EndIf
Global HeldX : HeldX=100
Global HeldY : HeldY=100
Global hoch : hoch=150
Global Richtung : Richtung=1
Procedure Held()
If KeyboardPushed(#PB_Key_Left)
HeldX-10
If HeldX<20
HeldX=630
EndIf
EndIf
If KeyboardPushed(#PB_Key_Right)
HeldX+10
If HeldX>620
HeldX=-10
EndIf
EndIf
; WandAbfrage
Wand=0
For i=0 To 9
If SpriteCollision(0,HeldX,HeldY,1,0+64*i, 400)
Wand=1
DisplaySprite(2, 0+64*i, 400)
EndIf
Next
If SpriteCollision(0,HeldX,HeldY,1,264,Hoch)
Wand=2
DisplaySprite(2,264,Hoch)
EndIf
If SpriteCollision(0,HeldX,HeldY,1,328, 200)
Wand=1
DisplaySprite(2,328,200)
EndIf
If SpriteCollision(0,HeldX,HeldY,1,200, 200)
Wand=1
DisplaySprite(2,200,200)
EndIf
; Guter Vorschlag von DarkDragon!!!
If Wand = 2
ziel = hoch - 30
If ziel < HeldY
HeldY - 1
ElseIf ziel > HeldY
HeldY + 1
EndIf
EndIf
If Wand=0
HeldY+5
EndIf
DisplayTransparentSprite(0, HeldX, HeldY)
EndProcedure
Procedure Mauer()
DisplaySprite(1, 200, 200)
DisplaySprite(1, 328, 200)
For i=0 To 9
DisplaySprite(1, 0+64*i, 400)
Next
EndProcedure
Procedure Beweg()
hoch+1*Richtung
; Debug hoch
If Hoch>400
Hoch=400
Richtung*-1
EndIf
If Hoch<150
Hoch=150
Richtung*-1
EndIf
DisplaySprite(1, 264, Hoch)
EndProcedure
If OpenScreen(640, 480, 16, "Sprite")
; Erstelle Kreis auf Sprite
CreateSprite(0,32,32)
StartDrawing(SpriteOutput(0))
Circle(15,15,15,RGB(255,128,128))
StopDrawing()
; Erstelle Balken auf Sprite
CreateSprite(1,64,4)
StartDrawing(SpriteOutput(1))
Box(0,0,64,4,RGB(0,128,255))
StopDrawing()
CreateSprite(2,64,4)
StartDrawing(SpriteOutput(2))
Box(0,0,64,4,RGB(0,255,0))
StopDrawing()
Repeat
ExamineKeyboard()
Mauer()
Beweg()
Held()
Delay(10)
FlipBuffers()
;ClearScreen(0) ; für PB 4.x
ClearScreen(0,0,0) ; für PB 3.x
Until KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester("Error", "Can't open a 640*480 - 16 bit screen !", 0)
EndIf
End
>>>>>>>>>>>>> für PB 4.x sollte da stehen ClearScreen(0) bzw. ClearScreen(RGB(0,0,0))
War mal ein kleiner Test, wie man bewegte Flächen machen könnte und einen bewegbaren Ball. Ist natürlich noch nicht ideal. Der Ball dreht sich nicht und er hüpft auch komisch

Das liegt an der Idee, die ich hatte. Ich wollte ihn immer Fallen lassen und wenn er auf dem Fahrstuhl ist, sollte er etwas nach oben schweben.
