modified iOS touch algorithm to match Android deployment.
This commit is contained in:
@@ -406,7 +406,7 @@ void DestroyGame(void)
|
|||||||
int yOffset = ((currentLocation.y-es2renderer.viewPort.top)*SCREEN_HEIGHT)/actualHeight;
|
int yOffset = ((currentLocation.y-es2renderer.viewPort.top)*SCREEN_HEIGHT)/actualHeight;
|
||||||
|
|
||||||
g_engine->LeftClicked(xOffset, yOffset);
|
g_engine->LeftClicked(xOffset, yOffset);
|
||||||
/*
|
|
||||||
// doesn't work as expected. Need to figure out correct algorithm. Double tap or double swipe down will execute OK button.
|
// doesn't work as expected. Need to figure out correct algorithm. Double tap or double swipe down will execute OK button.
|
||||||
NSInteger xDiff = abs(static_cast<int>(currentX) - xOffset);
|
NSInteger xDiff = abs(static_cast<int>(currentX) - xOffset);
|
||||||
NSInteger yDiff = abs(static_cast<int>(currentY) - yOffset);
|
NSInteger yDiff = abs(static_cast<int>(currentY) - yOffset);
|
||||||
@@ -415,10 +415,9 @@ void DestroyGame(void)
|
|||||||
{
|
{
|
||||||
g_engine->HoldKey_NoRepeat(JGE_BTN_OK);
|
g_engine->HoldKey_NoRepeat(JGE_BTN_OK);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
currentX = xOffset;
|
currentX = xOffset;
|
||||||
currentY = yOffset;
|
currentY = yOffset;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(currentLocation.y < es2renderer.viewPort.top) {
|
else if(currentLocation.y < es2renderer.viewPort.top) {
|
||||||
@@ -461,6 +460,7 @@ void DestroyGame(void)
|
|||||||
CGPoint translatedPoint = [recognizer locationInView: self];
|
CGPoint translatedPoint = [recognizer locationInView: self];
|
||||||
currentX = translatedPoint.x;
|
currentX = translatedPoint.x;
|
||||||
currentY = translatedPoint.y;
|
currentY = translatedPoint.y;
|
||||||
|
g_engine->LeftClicked( currentX, currentY);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)handleHand:(UITapGestureRecognizer *)recognizer {
|
- (void)handleHand:(UITapGestureRecognizer *)recognizer {
|
||||||
@@ -515,73 +515,6 @@ void DestroyGame(void)
|
|||||||
g_engine->HoldKey_NoRepeat(JGE_BTN_CANCEL);
|
g_engine->HoldKey_NoRepeat(JGE_BTN_CANCEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (void) handleTouchEvent: (NSSet *) touches withEvent: (UIEvent *) event
|
|
||||||
{
|
|
||||||
UITouch *touch = [[event touchesForView:self] anyObject];
|
|
||||||
NSUInteger numberOfTouches = [[event touchesForView: self] count];
|
|
||||||
|
|
||||||
// Convert touch point from UIView referential to OpenGL one (upside-down flip)
|
|
||||||
currentLocation = [touch previousLocationInView:self];
|
|
||||||
ES2Renderer* es2renderer = (ES2Renderer*)renderer;
|
|
||||||
|
|
||||||
int actualWidth = (int) JRenderer::GetInstance()->GetActualWidth();
|
|
||||||
int actualHeight = (int) JRenderer::GetInstance()->GetActualHeight();
|
|
||||||
|
|
||||||
if (currentLocation.y > es2renderer.viewPort.top &&
|
|
||||||
currentLocation.y < es2renderer.viewPort.bottom &&
|
|
||||||
currentLocation.x < es2renderer.viewPort.right &&
|
|
||||||
currentLocation.x > es2renderer.viewPort.left)
|
|
||||||
{
|
|
||||||
int xOffset = ((currentLocation.x-es2renderer.viewPort.left)*SCREEN_WIDTH)/actualWidth;
|
|
||||||
int yOffset = ((currentLocation.y-es2renderer.viewPort.top)*SCREEN_HEIGHT)/actualHeight;
|
|
||||||
|
|
||||||
if (touch.tapCount == 1 && numberOfTouches == 1)
|
|
||||||
{
|
|
||||||
g_engine->LeftClicked(xOffset, yOffset);
|
|
||||||
if ( touch.phase == UITouchPhaseEnded)
|
|
||||||
g_engine->HoldKey_NoRepeat(JGE_BTN_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
else if((currentLocation.y > es2renderer.viewPort.bottom) && (currentLocation.x < actualWidth/2)) {
|
|
||||||
|
|
||||||
if (touch.phase == UITouchPhaseEnded)
|
|
||||||
g_engine->HoldKey_NoRepeat(JGE_BTN_PREV);
|
|
||||||
}
|
|
||||||
else if((currentLocation.y > es2renderer.viewPort.bottom) && (currentLocation.x >= actualWidth/2)) {
|
|
||||||
|
|
||||||
if (touch.phase == UITouchPhaseEnded)
|
|
||||||
g_engine->HoldKey_NoRepeat(JGE_BTN_NEXT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handles the start of a touch
|
|
||||||
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
|
|
||||||
{
|
|
||||||
[self handleTouchEvent: touches withEvent: event];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Handles the continuation of a touch.
|
|
||||||
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
|
|
||||||
{
|
|
||||||
//[self handleTouchEvent: touches withEvent: event];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
|
|
||||||
{
|
|
||||||
//[self handleTouchEvent:touches withEvent:event];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handles the end of a touch event.
|
|
||||||
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
|
|
||||||
{
|
|
||||||
// If appropriate, add code necessary to save the state of the application.
|
|
||||||
// This application is not saving state.
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user