fixed some click issues found with iOS port.
This commit is contained in:
@@ -150,7 +150,7 @@ bool JGuiController::CheckUserInput(JButton key)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // a dude may have clicked somewhere, we're gonna select the closest object from where he clicked
|
{ // a dude may have clicked somewhere, we're gonna select the closest object from where he clicked
|
||||||
int x, y;
|
int x = -1, y = -1;
|
||||||
unsigned int distance2;
|
unsigned int distance2;
|
||||||
unsigned int minDistance2 = -1;
|
unsigned int minDistance2 = -1;
|
||||||
int n = mCurr;
|
int n = mCurr;
|
||||||
@@ -175,6 +175,11 @@ bool JGuiController::CheckUserInput(JButton key)
|
|||||||
mCurr = n;
|
mCurr = n;
|
||||||
mObjects[mCurr]->Entering();
|
mObjects[mCurr]->Entering();
|
||||||
}
|
}
|
||||||
|
// if the same object was selected process click
|
||||||
|
else if (n == mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(JGE_BTN_OK))
|
||||||
|
{
|
||||||
|
mObjects[mCurr]->Entering();
|
||||||
|
}
|
||||||
mEngine->LeftClickedProcessed();
|
mEngine->LeftClickedProcessed();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -405,6 +405,7 @@ static NSString *_MY_AD_WHIRL_APPLICATION_KEY_IPAD = @"2e70e3f3da40408588b9a3170
|
|||||||
// we want to differentiate between a pan motion vs a flick gesture.
|
// we want to differentiate between a pan motion vs a flick gesture.
|
||||||
if (!(( ((int)abs( (int) velocity.x)) > 300) || ((int) (abs( (int) velocity.y)) > 300)))
|
if (!(( ((int)abs( (int) velocity.x)) > 300) || ((int) (abs( (int) velocity.y)) > 300)))
|
||||||
{
|
{
|
||||||
|
g_engine->LeftClicked(newLocation.x, newLocation.y);
|
||||||
g_engine->HoldKey_NoRepeat( JGE_BTN_OK );
|
g_engine->HoldKey_NoRepeat( JGE_BTN_OK );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -433,7 +434,6 @@ static NSString *_MY_AD_WHIRL_APPLICATION_KEY_IPAD = @"2e70e3f3da40408588b9a3170
|
|||||||
int actualWidth = (int) JRenderer::GetInstance()->GetActualWidth();
|
int actualWidth = (int) JRenderer::GetInstance()->GetActualWidth();
|
||||||
|
|
||||||
CGPoint newCoordinates = [self normalizeClickCoordinatesWithPoint: currentLocation];
|
CGPoint newCoordinates = [self normalizeClickCoordinatesWithPoint: currentLocation];
|
||||||
|
|
||||||
g_engine->LeftClicked( newCoordinates.x, newCoordinates.y);
|
g_engine->LeftClicked( newCoordinates.x, newCoordinates.y);
|
||||||
g_engine->HoldKey_NoRepeat(JGE_BTN_NONE);
|
g_engine->HoldKey_NoRepeat(JGE_BTN_NONE);
|
||||||
|
|
||||||
@@ -444,7 +444,8 @@ static NSString *_MY_AD_WHIRL_APPLICATION_KEY_IPAD = @"2e70e3f3da40408588b9a3170
|
|||||||
if (clickedWithinGameArea)
|
if (clickedWithinGameArea)
|
||||||
{
|
{
|
||||||
// we want some delay for the left click to take place before clicking on OK.
|
// we want some delay for the left click to take place before clicking on OK.
|
||||||
[self performSelector: @selector(handleOK:) withObject: nil afterDelay: 0.25];
|
g_engine->LeftClicked( newCoordinates.x, newCoordinates.y);
|
||||||
|
[self performSelector: @selector(handleOK:) withObject: recognizer afterDelay: 0.25];
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(currentLocation.y < es2renderer.viewPort.top) {
|
else if(currentLocation.y < es2renderer.viewPort.top) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#include "PrecompiledHeader.h"
|
#include "PrecompiledHeader.h"
|
||||||
|
|
||||||
#include "DeckMenuItem.h"
|
#include "DeckMenuItem.h"
|
||||||
#include "Translate.h"
|
#include "Translate.h"
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#define ITEM_PX_WIDTH 190.0f
|
#define ITEM_PX_WIDTH 190.0f
|
||||||
#define kItemXOffset 22
|
#define kItemXOffset 22
|
||||||
#define kItemYHeight 20
|
#define kItemYHeight 30
|
||||||
|
|
||||||
const int kHorizontalScrollSpeed = 30; // higher numbers mean faster scrolling
|
const int kHorizontalScrollSpeed = 30; // higher numbers mean faster scrolling
|
||||||
|
|
||||||
@@ -43,8 +43,11 @@ DeckMenuItem::DeckMenuItem(DeckMenu* _parent, int id, int fontId, string text, f
|
|||||||
mScrollerOffset = 0.0f;
|
mScrollerOffset = 0.0f;
|
||||||
|
|
||||||
if (hasFocus)
|
if (hasFocus)
|
||||||
|
{
|
||||||
|
mIsValidSelection = true;
|
||||||
Entering();
|
Entering();
|
||||||
|
}
|
||||||
|
|
||||||
if (meta && meta->getAvatarFilename().size() > 0)
|
if (meta && meta->getAvatarFilename().size() > 0)
|
||||||
this->imageFilename = meta->getAvatarFilename();
|
this->imageFilename = meta->getAvatarFilename();
|
||||||
else
|
else
|
||||||
@@ -120,19 +123,17 @@ void DeckMenuItem::Render()
|
|||||||
void DeckMenuItem::checkUserClick()
|
void DeckMenuItem::checkUserClick()
|
||||||
{
|
{
|
||||||
#ifdef IOS
|
#ifdef IOS
|
||||||
int x1 = 0, y1 = 0;
|
int x1 = -1, y1 = -1;
|
||||||
if ( mEngine->GetLeftClickCoordinates(x1, y1))
|
if (mEngine->GetLeftClickCoordinates(x1, y1))
|
||||||
{
|
{
|
||||||
mIsValidSelection = false;
|
mIsValidSelection = false;
|
||||||
int x2 = kItemXOffset, y2 = static_cast<int>(mY + mYOffset);
|
int x2 = kItemXOffset, y2 = static_cast<int>(mY + mYOffset);
|
||||||
if ( (x1 >= x2) && (x1 <= (x2 + ITEM_PX_WIDTH)) && (y1 >= y2) && (y1 < (y2 + kItemYHeight)))
|
if ( (x1 >= x2) && (x1 <= (x2 + ITEM_PX_WIDTH)) && (y1 >= y2) && (y1 < (y2 + kItemYHeight)))
|
||||||
mIsValidSelection = true;
|
mIsValidSelection = true;
|
||||||
}
|
}
|
||||||
else
|
#else
|
||||||
|
mIsValidSelection = true;
|
||||||
#endif
|
#endif
|
||||||
{
|
|
||||||
mIsValidSelection = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -158,7 +159,6 @@ bool DeckMenuItem::ButtonPressed()
|
|||||||
|
|
||||||
void DeckMenuItem::Relocate(float x, float y)
|
void DeckMenuItem::Relocate(float x, float y)
|
||||||
{
|
{
|
||||||
checkUserClick();
|
|
||||||
mX = x;
|
mX = x;
|
||||||
mY = y;
|
mY = y;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1774,9 +1774,6 @@ void GameObserver::loadPlayer(int playerId, Player* player)
|
|||||||
|
|
||||||
void GameObserver::loadPlayer(int playerId, PlayerType playerType, int decknb, bool premadeDeck)
|
void GameObserver::loadPlayer(int playerId, PlayerType playerType, int decknb, bool premadeDeck)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (decknb)
|
if (decknb)
|
||||||
{
|
{
|
||||||
if (playerType == PLAYER_TYPE_HUMAN)
|
if (playerType == PLAYER_TYPE_HUMAN)
|
||||||
|
|||||||
Reference in New Issue
Block a user