This is my edia :
SuperStrict
Framework BRL.Max2d
Import BRL.GLMax2d
''''''''''''''''''''''''''''THE LEFT STAIRS
Local srot:Float = 45
Local sx:Float = 0
Local sy:Float = 150
Local swidth:Float = 300
Local sheight:Float = 30
''''''''''''''''''''''''' THE FLOOR
Local fx:Float = 200
Local fy:Float = 350
Local fwidth:Float = 200
Local fheight:Float = 30
''''''''''''''''''''''''''''THE LEFT STAIRS
Local srot2:Float = -45
Local sx2:Float = 400
Local sy2:Float = 350
Local swidth2:Float = 300
Local sheight2:Float = 30
''''''''''''''''''''''''''''''The Char
Local x:Float = 0
Local y:Float = 0
Local width:Float = 20
Local height:Float = 20
''''''''''''''''''''' OTHER
Local speed:Float = 5
Local Gravity:Float = 9
Graphics 640 , 480
'''''''''''''''The collision for stairs
SetRotation srot
CollideRect(sx , sy , swidth , sheight , COLLISION_LAYER_1 , COLLISION_LAYER_2)
SetRotation srot2
CollideRect(sx2 , sy2 , swidth2 , sheight2 , COLLISION_LAYER_1 , COLLISION_LAYER_2)
'''''''''''' for floor
SetRotation 0
CollideRect(fx , fy , fwidth , fheight , COLLISION_LAYER_1 , COLLISION_LAYER_2)
While Not KeyHit(KEY_ESCAPE)
Cls
ResetCollisions(COLLISION_LAYER_3)
SetRotation srot
SetColor 255 , 0 , 0
DrawRect sx , sy , swidth , sheight
SetRotation srot2
DrawRect sx2 , sy2 , swidth2 , sheight2
SetRotation 0
SetColor 0 , 255 , 0
DrawRect fx , fy , fwidth , fheight
SetRotation 0
DrawRect x , y , width , height
'''''''''''''''The keys
If KeyDown(KEY_RIGHT)
Local tx:Float = speed
If Not CollideRect(x + tx , y , width , height , COLLISION_LAYER_2 , COLLISION_LAYER_1)
x:+tx
Else
For Local i:Int = 1 To 10
If Not CollideRect(x + tx , y , width , height - i , COLLISION_LAYER_2 , COLLISION_LAYER_1)
x:+tx
y:-i
Exit
End If
Next
End If
End If
If KeyDown(KEY_LEFT)
Local tx:Float = -speed
If Not CollideRect(x + tx , y , width , height , COLLISION_LAYER_2 , COLLISION_LAYER_1)
x:+tx
Else
For Local i:Int = 1 To 10
If Not CollideRect(x + tx , y , width , height - i , COLLISION_LAYER_2 , COLLISION_LAYER_1)
x:+tx
y:-i
Exit
End If
Next
End If
End If
''''''gravity
For Local i:Int = 0 To gravity
If Not CollideRect(x , y + gravity - i , width , height , COLLISION_LAYER_2 , COLLISION_LAYER_1)
y:+gravity - i
Exit
End If
Next
Flip
Wend
End
Any beter ideas?
|