I think i have the slide bar working know but it jiggles at the ends. If some one can help so it don't jiggle like that then it be better.
+ Code Snippet#include "Main.h"
#include "MYAGKGUI.h"
// let the compiler know we're using the AGK namespace
using namespace AGK;
class SLIDEBAR
{
public:
SLIDEBAR()
{
slidebarcount=0;
sliderpicked=-1;
}
void makesliderbar(int xpos, int ypos,int lengthofslidebar,int controllerdefaultlocation,int red,int green, int blue);
void positionslider();
bool testifslidebuttonhit(bool down);
void destroyslidebar();
private:
int slidebarcount;
int slidebarpos[50];
int slidebar[50];
int xpostemp[50];
int ypostemp[50];
int sizeslider[50];
int sliderpicked;
int lastxpos;
int lastypos;
};
bool SLIDEBAR::testifslidebuttonhit(bool down)
{
if (!down)
return false;
int x=agk::GetPointerX();
int y=agk::GetPointerY();
int xcnt=0;
while (xcnt<slidebarcount)
{
if(x>=slidebar[xcnt]+xpostemp[xcnt]&&x<=slidebar[xcnt]+xpostemp[xcnt]+10&&y>=ypostemp[xcnt]-7&&y<=ypostemp[xcnt]+7)
{
sliderpicked=xcnt;
xcnt=slidebarcount;
return true;
}
xcnt++;
}
lastxpos=x;
lastypos=y;
return false;
}
void SLIDEBAR::positionslider()
{
int x=agk::GetPointerX();
if(slidebar[sliderpicked]<-5)
{
x=xpostemp[sliderpicked];
slidebar[sliderpicked]=0;
}
else if(slidebar[sliderpicked]>=sizeslider[sliderpicked]-5)
{
x=sizeslider[sliderpicked]+xpostemp[sliderpicked]-5;
slidebar[sliderpicked]=sizeslider[sliderpicked]-5;
}
agk::SetSpritePosition(slidebarpos[sliderpicked],x,ypostemp[sliderpicked]-7);
slidebar[sliderpicked]=x-xpostemp[sliderpicked]-5;
}
void SLIDEBAR::makesliderbar(int xpos,int ypos,int lengthofslidebar,int controler,int red,int green, int blue)
{
sizeslider[slidebarcount]=lengthofslidebar;
slidebar[slidebarcount]=agk::CreateSprite(agk::LoadImage("slider.png"));
agk::SetSpritePosition(slidebar[slidebarcount],xpos,ypos);
agk::SetSpriteColor ( slidebar[slidebarcount], red, green, blue,255);
agk::SetSpriteSize(slidebar[slidebarcount],lengthofslidebar,5);
slidebarpos[slidebarcount]=agk::CreateSprite(agk::LoadImage("slideutility.png"));
agk::SetSpritePosition(slidebarpos[slidebarcount],xpos+controler,ypos-7);
xpostemp[slidebarcount]=xpos;
ypostemp[slidebarcount]=ypos;
if(controler>=lengthofslidebar)
{
controler=lengthofslidebar;
slidebar[slidebarcount]=controler;
}
else if(controler<=0)
{
slidebar[slidebarcount]=0;
controler=0;
}
else
slidebar[slidebarcount]=controler;
slidebarcount++;
}
void SLIDEBAR::destroyslidebar()
{
for(int x=0; x<=slidebarcount;x++)
{
agk::DeleteSprite(slidebar[x]);
agk::DeleteSprite(slidebarpos[x]);
}
}