Shifted the touch reference to refer the middle of the key instead of
the top left, now selects the touched key before using it.
This commit is contained in:
@@ -196,6 +196,25 @@ void SimplePad::MoveSelection(unsigned char moveto)
|
|||||||
void SimplePad::Update(float dt)
|
void SimplePad::Update(float dt)
|
||||||
{
|
{
|
||||||
JGE * mEngine = JGE::GetInstance();
|
JGE * mEngine = JGE::GetInstance();
|
||||||
|
|
||||||
|
int x, y, n = selected;
|
||||||
|
unsigned int minDistance = -1;
|
||||||
|
if(mEngine->GetLeftClickCoordinates(x, y))
|
||||||
|
{
|
||||||
|
for(int i = 0; i < nbitems; i++)
|
||||||
|
{
|
||||||
|
unsigned int distance = static_cast<unsigned int>((keys[i]->mY - (float)y) * (keys[i]->mY - (float)y) + (keys[i]->mX - (float)x) * (keys[i]->mX - (float)x));
|
||||||
|
if (distance < minDistance)
|
||||||
|
{
|
||||||
|
minDistance = distance;
|
||||||
|
n = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MoveSelection(n);
|
||||||
|
JGE::GetInstance()->LeftClickedProcessed();
|
||||||
|
}
|
||||||
|
|
||||||
JButton key = mEngine->ReadButton();
|
JButton key = mEngine->ReadButton();
|
||||||
|
|
||||||
//Start button changes capslock setting.
|
//Start button changes capslock setting.
|
||||||
@@ -249,24 +268,6 @@ void SimplePad::Update(float dt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int x, y, n = selected;
|
|
||||||
unsigned int minDistance = -1;
|
|
||||||
if(JGE::GetInstance()->GetLeftClickCoordinates(x, y))
|
|
||||||
{
|
|
||||||
for(int i = 0; i < nbitems; i++)
|
|
||||||
{
|
|
||||||
unsigned int distance = static_cast<unsigned int>((keys[i]->mY - (float)y) * (keys[i]->mY - (float)y) + (keys[i]->mX - (float)x) * (keys[i]->mX - (float)x));
|
|
||||||
if (distance < minDistance)
|
|
||||||
{
|
|
||||||
minDistance = distance;
|
|
||||||
n = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MoveSelection(n);
|
|
||||||
JGE::GetInstance()->LeftClickedProcessed();
|
|
||||||
}
|
|
||||||
|
|
||||||
mX = 50;
|
mX = 50;
|
||||||
mY = 50;
|
mY = 50;
|
||||||
|
|
||||||
@@ -428,8 +429,8 @@ void SimplePad::Render()
|
|||||||
renderer->FillRoundRect(mX + offX - 4, mY + offY - 4, kW + 8, kH + 4, 2, ARGB(255,100,100,100));
|
renderer->FillRoundRect(mX + offX - 4, mY + offY - 4, kW + 8, kH + 4, 2, ARGB(255,100,100,100));
|
||||||
mFont->SetColor(ARGB(255,255,255,255));
|
mFont->SetColor(ARGB(255,255,255,255));
|
||||||
}
|
}
|
||||||
keys[x]->mX = mX + offX - 4;
|
keys[x]->mX = mX + offX - 4 + (kW + 14)/2;
|
||||||
keys[x]->mY = mY + offY - 4;
|
keys[x]->mY = mY + offY - 4 + (kH + 12)/2;
|
||||||
|
|
||||||
char vkey[2];
|
char vkey[2];
|
||||||
vkey[1] = '\0';
|
vkey[1] = '\0';
|
||||||
|
|||||||
Reference in New Issue
Block a user