Hi Guys
Playing around with some slider ideas for an upcoming project.
Create MANY sliders with a few lines code
2 Functions.
createslider(spriteid, xpos, ypos, width, height, text, textsize, valuestring, minrange, maxrange)
check_sliders(firstsliderID,LastSliderID)
Hope someone can find it usefull.
SetErrorMode(2)
// set window properties
SetWindowTitle( "Many Sliders Test" )
SetWindowSize( 1280, 728, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window
//#include "main.scene"
// set display properties
SetVirtualResolution( 1280, 720 ) // doesn't have to match the window
SetOrientationAllowed( 1, 1, 1, 1 ) // allow both portrait and landscape on mobile devices
SetSyncRate( 30, 0 ) // 30fps instead of 60 to save battery
SetScissor( 0,0,0,0 ) // use the maximum available screen space, no black borders
UseNewDefaultFonts( 1 )
global scrollx as integer[100]
global scrolly as integer[100]
global scrollw as integer[100]
global scrollh as integer[100]
global scrollsprv as integer[100]
global scrollsprh as integer[100]
global scrolltext as integer[100]
global scrollval as integer[100]
global scrollvaltext as string[100]
global scrollmin as integer[100]
global scrollmax as integer[100]
// main_setup()
global img_bar as integer
global img_vbar as integer
global spritehit as integer
img_bar = LoadImage( "bar.png" )
img_vbar = LoadImage( "vbar.png" )
yy = 40
xx = 70
// create 50 sliders
for a = 1 to 50
if a = 11 or a = 21 or a = 31 or a = 41 or a = 51
xx = xx + 230
yy = 40
endif
createSlider(a,xx,yy,random(80,200),30, "Slider > "+str(a), 20, "0",1,100)
//createslider functions parameters
//createslider(spriteid, xpos, ypos, width, height, text, textsize, valuestring, minrange, maxrange)
yy = yy + 60
next a
global ts as integer
global x as float
global y as float
global w as float
global p as float
global c as float
do
spritehit = getspritehit(getpointerx(),getpointery())
print(spritehit)
if getPointerState() = 1 or getpointerpressed() = 1
ts = spritehit
check_sliders(1,61)
endif
sync()
Loop
function check_sliders(a,b)
if spritehit > a and spritehit < b
x = getspritex(ts)
y = getspritey(ts)
w = getspritewidth(ts)
h = getspriteheight(ts)
p = getpointerx()
pc = (p-x) / w * 100
c = pc * scrollmax[ts-a] / 100
if getpointerx() > x and getpointerx() < x+w and getpointery() > y and getpointery() < y + h
setspriteposition(ts+1340,getpointerx()-(getspritewidth(ts+1340)/2),getspritey(spritehit))
settextstring(ts+1440,str(round(c)))
endif
endif
endfunction
function createSlider(s,x,y,w,h,t as string,ts,tv as string, min, max)
scrollx[s]=x
scrolly[s]=y
scrollw[s]=w
scrollh[s]=h
scrollsprh[s] = s + 10
scrollsprv[s] = s + 1350
scrolltext[s] = s + 1400
scrollval[s] = s + 1450
scrollmin[s] = Min
scrollmax[s] = max
createsprite(scrollsprh[s],img_bar)
SetSpritePosition(scrollsprh[s],scrollx[s],scrolly[s])
SetSpriteSize(scrollsprh[s],scrollw[s],scrollh[s])
createsprite(scrollsprv[s],img_vbar)
SetSpritePosition(scrollsprv[s],getspritex(scrollsprh[s]),getspritey(scrollsprh[s]))
SetSpriteSize(scrollsprv[s],-1,GetSpriteHeight(scrollsprh[s]))
scrollvaltext[s] = tv
createtext(scrolltext[s],t)
settextsize(scrolltext[s],ts)
settextposition(scrolltext[s],getspritex(scrollsprh[s]), getspritey(scrollsprh[s]) - (ts - 4))
createtext(scrollval[s],t)
settextsize(scrollval[s],ts)
settextposition(scrollval[s],getspritex(scrollsprh[s]), getspritey(scrollsprh[s]) + (ts + 4))
settextstring(scrollval[s],scrollvaltext[s])
endfunction

[video=mp4]
sliders.mp4
[/video]
Enjoy
Cherio
Danie