it accepts a real number between 0 - 200
and following is a quick demonstration.
Rem ***** Main Source File *****
REM SLIDER MENU STUFF
REM FROM HERE
`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Type vec2d
x As Integer
y As Integer
EndType
Type buttonProperties
n As Integer
s As vec2d
p As vec2d
a As vec2d
click As Integer
clicked As Integer
EndType
GLOBAL musicVolume = 100
GLOBAL mx
GLOBAL my
GLOBAL mmx
GLOBAL mmy
imgSlideU = freeImage() : Load Image "imgSlideU.png", imgSlideU, 1
imgSlideD = freeImage() : Load Image "imgSlideD.png", imgSlideD, 1
GLOBAL DIM sliders(10,1) As buttonProperties
`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
REM TO HERE
Load Music "Test.mp3", 1
Sync On
Do
mx = mouseX() : mmx = mouseMoveX()
my = mouseY() : mmy = mouseMoveY()
musicVolume = menuSlider2d(1, 320, 240, 200, soundVolume, imgSlideU, imgSlideD, 0, "")
inZoneVolumeSlider = sprFlash(sliders(1,0).n, 255, 0, 0)
If inZoneVolumeSlider
Set Music Volume 1, musicVolume
Loop Music 1
Else
If Music Playing(1) Then Stop Music 1
EndIf
SET CURSOR 0, 0
PRINT "keep your mouse on the slider button to hear music"
PRINT "This command will set the volume at which the music is playing."
PRINT "The default value is 100, as a percentage of the standard volume of play."
PRINT "A value of 50 means the music is playing at half the normal volume where"
PRINT "200 will play the music twice as loud."
Sync
Loop
lbl_spriteSpecificFunctions:
`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
`n = sprite number
`x = sprite x position
`y = sprite y position
`xSize = sprite x Size Scale
`menuItem= variable place holder
`up = sprite up image
`down = sprite down image
`def = start value
`Title = Title bar string
Function menuSlider2d(n As Integer, x As Integer, y As Integer, xSize As Integer, menuItem As Integer, up As Integer, down As Integer, def As Integer, Title As String)
If sliders(n,0).n = 0
sliders(n,1).n = freeSprite()
Sprite sliders(n,1).n, x, y, down
Size Sprite sliders(n,1).n, xSize, Sprite Height((sliders(n,1).n))
sliders(n,1).s.x = Sprite Width(sliders(n,1).n)
sliders(n,1).s.y = Sprite Height(sliders(n,1).n)
Offset Sprite sliders(n,1).n, sliders(n,1).s.x / 2.0, sliders(n,1).s.y / 2.0
sliders(n,0).n = freeSprite()
Sprite sliders(n,0).n, x + def, y, up
sliders(n,0).s.x = Sprite Width(sliders(n,0).n)
sliders(n,0).s.y = Sprite Height(sliders(n,0).n)
Offset Sprite sliders(n,0).n, sliders(n,0).s.x / 2.0, sliders(n,0).s.y / 2.0
EndIf
sliders(n,0).p.x = sprite x(sliders(n,0).n)
sliders(n,0).p.y = sprite y(sliders(n,0).n)
x1# = sliders(n,0).p.x - sliders(n,0).s.x / 2.0
x2# = sliders(n,0).p.x + sliders(n,0).s.x / 2.0
y1# = sliders(n,0).p.y - sliders(n,0).s.y / 2.0
y2# = sliders(n,0).p.y + sliders(n,0).s.y / 2.0
If mx > x1# And mx < x2# And my > y1# And my < y2#
if mouseclick() = 1
sliders(n,0).p.x = mx
if sliders(n,0).p.x < x - sliders(n,1).s.x / 2.0 Then sliders(n,0).p.x = x - sliders(n,1).s.x / 2.0
if sliders(n,0).p.x > x + sliders(n,1).s.x / 2.0 Then sliders(n,0).p.x = x + sliders(n,1).s.x / 2.0
endif
endif
menuItem = abs(x - sliders(n,1).s.x / 2.0 - sliders(n,0).p.x)
center text x,y+20, Title + str$(menuItem)
sprite sliders(n,1).n, x, y, down
sprite sliders(n,0).n, sliders(n,0).p.x, y, up
EndFunction menuItem
`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
`n = sprite number
`r = red color
`g = green color
`b = blue color
Function sprFlash(n As Integer, r As Integer, g As Integer, b As Integer)
inZone = inSprZone(n)
If inZone = 1
Set Sprite Diffuse n, r, g, b
Else
Set Sprite Diffuse n, 255, 255, 255
EndIf
EndFunction inZone
`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
`n = sprite number
Function inSprZone(n As Integer)
`mx = mouseX()
`my = mouseY()
x1# = Sprite X(n) - Sprite Width(n) / 2.0
x2# = Sprite X(n) + Sprite Width(n) / 2.0
y1# = Sprite Y(n) - Sprite Height(n) / 2.0
y2# = Sprite Y(n) + Sprite Height(n) / 2.0
If mx > x1# And mx < x2# And my > y1# And my < y2#
inZone = 1
Else
inZone = 0
EndIf
EndFunction inZone
`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
lbl_helperFunctions:
`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Function freeImage()
Repeat
Inc i
Until Image Exist(i) = 0
EndFunction i
`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
`>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Function freeSprite()
Repeat
Inc i
Until Sprite Exist(i) = 0
EndFunction i
`<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<