Simple requester code example
Code below :
Import mojo
Class requester
Field x:Int = 640/2-320/2
Field y:Int = 200
Field width:Int=320
Field height:Int=100
Field visible:Bool = True 'requester visible
Field button1:String="Cancel"
Field button2:String="Ok"
Field button1p:Bool = False 'button pressed
Field button2p:Bool = False
Field b1x 'button 1/2 x y (w)idth (h)eight
Field b1y
Field b1w
Field b1h
Field b2x
Field b2y
Field b2w
Field b2h
Method New()
b1x = x+10
b1y = y+height-25
b1w = 100
b1h = 20
b2x = x+width-110
b2y = y+height-25
b2w = 100
b2h = 20
End Method
Method requester()
If visible = True
drawbox "Do you wish to continue?",0,x,y,width,height
If rectsoverlap(MouseX(),MouseY(),1,1,b1x,b1y,b1w,b1h) = True And MouseDown(MOUSE_LEFT) = True Then
button1p = True
drawbox button1,1,b1x,b1y,b1w,b1h
Else
drawbox button1,0,b1x,b1y,b1w,b1h
End If
If rectsoverlap(MouseX(),MouseY(),1,1,b1x,b1y,b1w,b1h) = False
button1p = False
End If
If rectsoverlap(MouseX(),MouseY(),1,1,b2x,b2y,b2w,b2h) = True And MouseDown(MOUSE_LEFT) = True Then
button2p = True
drawbox button2,1,b2x,b2y,b2w,b2h
Else
drawbox button2,0,b2x,b2y,b2w,b2h
End If
If rectsoverlap(MouseX(),MouseY(),1,1,b2x,b2y,b2w,b2h) = False
button2p = False
End If
If MouseDown(MOUSE_LEFT) = False And button1p = True Then
visible=False
button1p = False
End If
If MouseDown(MOUSE_LEFT) = False And button2p =True Then
visible = False
button2p = False
End If
End If
End Method
Method drawbox(text:String,_state,_x,_y,_width,_height)
Select _state
Case 0'not pressed
SetColor 100,100,100
DrawRect _x,_y,_width,_height
SetColor 200,200,200
DrawLine _x,_y,_x+_width,_y
DrawLine _x,_y,_x,_y+_height
SetColor 50,50,50
DrawLine _x,_y+_height,_x+_width,_y+_height
DrawLine _x+_width,_y,_x+_width,_y+_height
If text <> ""
SetColor 255,255,255
DrawText text,_x+_width/2,_y+_height/2,0.5,0.5
End If
Case 1'pressed
SetColor 100,100,100
DrawRect _x,_y,_width,_height
SetColor 50,50,50
DrawLine _x,_y,_x+_width,_y
DrawLine _x,_y,_x,_y+_height
SetColor 100,100,100
DrawLine _x,_y+_height,_x+_width,_y+_height
DrawLine _x+_width,_y,_x+_width,_y+_height
If text <> ""
SetColor 255,255,255
DrawText text,_x+_width/2,_y+_height/2,0.5,0.5
End If
End Select
End Method
End Class
Global r:requester = New requester
Class MyGame Extends App
Method OnCreate()
SetUpdateRate(60)
End Method
Method OnUpdate()
If r.visible = False And Rnd(200)<5 Then r.visible=True
End Method
Method OnRender()
Cls 0,0,0
SetColor 255,255,255
r.requester
End Method
End Class
Function 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 Function
Function Main()
New MyGame()
End Function
Thats a damn fine thing to do there, sharing your code and giving examples! I love MonkeyX!
ReplyDeletehttp://www.yellzbellz.com