Here a example of how to make Vertical Sliders. GUI stuff.
Import mojo
Class vslider
Field x:Int,y:Int
Field w:Int,h:Int
Field slidey:Float
Field low:Float,heigh:Float
Field name:String
Method New(x:Int,y:Int,w:Int,h:Int,low:Int,heigh:Int,slidey:Int,name:String)
Self.x = x
Self.y = y
Self.w = w
Self.h = h
Self.low = low
Self.heigh = heigh
Self.slidey = slidey
Self.name = name
End Method
Method update()
If MouseDown(MOUSE_LEFT)
If rectsoverlap( MouseX(),
MouseY(),
1,
1,
x+5,y+25,
w/2,h-50)
Local val:Float
val = MouseY()-(y+25)
slidey = val*((heigh-low)/(h-50))
slidey+=low
End If
End If
If MouseHit(MOUSE_LEFT)
If rectsoverlap( MouseX(),
MouseY(),
1,1,
x+5,y+5,
w/2,20)
If slidey>low Then slidey-=1
Return
End If
If rectsoverlap( MouseX(),
MouseY(),
1,1,
x+5,y+h-25,
w/2,20)
If slidey<heigh Then slidey+=1
Return
End If
End If
slidey=Floor(slidey)
End Method
Method draw()
SetColor 0,0,0
DrawRect x,y,w,h
SetColor 150,150,150
DrawRect x+1,y+1,w-2,h-2
SetColor 255,255,255
DrawLine x+1,y+1,x+w-1,y+1
DrawLine x+1,y+1,x+1,y+h-1
SetColor 50,50,50
DrawRect x+5,y+25,w-10,h-50
SetColor 0,0,0
Local val:Float
val = (slidey-low)*((h-70)/(heigh-low))
DrawRect x+5,y+25+val,w/2,20
SetColor 255,255,255
DrawText name,x+w/2,y-16,0.5
End Method
Method rectsoverlap:Bool( x1:Int, y1:Int, w1:Int,
h1:Int, x2:Int, y2:Int,
w2:Int, h2:Int)
If x1 >= (x2 + w2) Or (x1 + w1) <= x2 Then Return False
If y1 >= (y2 + h2) Or (y1 + h1) <= y2 Then Return False
Return True
End Method
End Class
Global sr:vslider
Global sg:vslider
Global sb:vslider
Class MyGame Extends App
Method OnCreate()
SetUpdateRate(60)
sr = New vslider(100,100,20,150,0,225,50,"R")
sg = New vslider(148,100,20,150,0,255,50,"G")
sb = New vslider(192,100,20,150,0,255,50,"B")
End Method
Method OnUpdate()
sr.update
sg.update
sb.update
End Method
Method OnRender()
Cls 0,0,0
SetColor 255,255,255
DrawText "MonkeyX - GUI - Simple Vertical Sliders - Code Example.",10,10
DrawText "Use the Mouse with the Sliders to change color of rect.",10,30
sr.draw
sg.draw
sb.draw
SetColor 255,255,255
DrawRect 320,100,100,100
SetColor sr.slidey,sg.slidey,sb.slidey
DrawRect 320+1,100+1,100-2,100-2
End Method
End Class
Function Main()
New MyGame()
End Function
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.