Added support for left mouse click

This commit is contained in:
Xawotihs
2010-10-10 21:57:27 +00:00
parent 0a484237b2
commit 75b8a0c328
4 changed files with 73 additions and 0 deletions

View File

@@ -262,9 +262,33 @@ void JGE::ResetInput()
{
while (!keyBuffer.empty()) keyBuffer.pop();
holds.clear();
LeftClickedProcessed();
}
void JGE::LeftClicked(int x, int y)
{
mLastLeftClickX = x;
mlastLeftClickY = y;
}
void JGE::LeftClickedProcessed()
{
mLastLeftClickX = -1;
mlastLeftClickY = -1;
}
bool JGE::GetLeftClickCoordinates(int& x, int& y)
{
if(mLastLeftClickX != -1 || mlastLeftClickY != -1)
{
x = mLastLeftClickX;
y = mlastLeftClickY;
return true;
}
return false;
}
JGE::JGE()
{
mApp = NULL;
@@ -295,6 +319,7 @@ void JGE::Init()
JRenderer::GetInstance();
JFileSystem::GetInstance();
JSoundSystem::GetInstance();
LeftClickedProcessed();
}
void JGE::SetDelta(float delta)

View File

@@ -148,6 +148,37 @@ bool JGuiController::CheckUserInput(JButton key){
}
return true;
}
else
{ // a dude may have clicked somewhere, we're gonna select the closest object from where he clicked
int x, y;
unsigned int distance2;
unsigned int minDistance2 = -1;
int n = mCurr;
if(mEngine->GetLeftClickCoordinates(x, y))
{
for(int i = 0; i < mCount; i++)
{
int top, left;
if(mObjects[i]->getTopLeft(top, left))
{
distance2 = (top-y)*(top-y) + (left-x)*(left-x);
if(distance2 < minDistance2)
{
minDistance2 = distance2;
n = i;
}
}
}
if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(JGE_BTN_DOWN))
{
mCurr = n;
mObjects[mCurr]->Entering();
}
mEngine->LeftClickedProcessed();
return true;
}
}
return false;
}
void JGuiController::Update(float dt)