Improve OSC usability for iPad. Fixes #317

This commit is contained in:
Cameron Gutman
2018-06-01 22:09:24 -07:00
parent c74fa4d5b0
commit b918005555
+55 -44
View File
@@ -238,8 +238,22 @@ static float L3_Y;
// Start with the default complex layout // Start with the default complex layout
[self setupComplexControls]; [self setupComplexControls];
START_X = _controlArea.size.width * .95 + _controlArea.origin.x;
START_Y = _controlArea.size.height * .9 + _controlArea.origin.y; START_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
SELECT_X = _controlArea.size.width * .05 + _controlArea.origin.x;
SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y; SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
L3_Y = _controlArea.size.height * .85 + _controlArea.origin.y;
R3_Y = _controlArea.size.height * .85 + _controlArea.origin.y;
if (_iPad) {
L3_X = _controlArea.size.width * .15 + _controlArea.origin.x;
R3_X = _controlArea.size.width * .85 + _controlArea.origin.x;
}
else {
L3_X = _controlArea.size.width * .25 + _controlArea.origin.x;
R3_X = _controlArea.size.width * .75 + _controlArea.origin.x;
}
} }
// For GCGamepad controls we move triggers, start, and select // For GCGamepad controls we move triggers, start, and select
@@ -248,41 +262,21 @@ static float L3_Y;
// Start with the default complex layout // Start with the default complex layout
[self setupComplexControls]; [self setupComplexControls];
START_X = _controlArea.size.width * .6 + _controlArea.origin.x; L2_Y = _controlArea.size.height * .75 + _controlArea.origin.y;
START_Y = _controlArea.size.height * .9 + _controlArea.origin.y; L2_X = _controlArea.size.width * .05 + _controlArea.origin.x;
SELECT_X = _controlArea.size.width * .4 + _controlArea.origin.x; R2_Y = _controlArea.size.height * .75 + _controlArea.origin.y;
SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y; R2_X = _controlArea.size.width * .95 + _controlArea.origin.x;
L2_Y = _controlArea.size.height * .9 + _controlArea.origin.y; START_X = _controlArea.size.width * .95 + _controlArea.origin.x;
L2_X = _controlArea.size.width * .1 + _controlArea.origin.x; START_Y = _controlArea.size.height * .95 + _controlArea.origin.y;
SELECT_X = _controlArea.size.width * .05 + _controlArea.origin.x;
R2_Y = _controlArea.size.height * .9 + _controlArea.origin.y; SELECT_Y = _controlArea.size.height * .95 + _controlArea.origin.y;
R2_X = _controlArea.size.width * .9 + _controlArea.origin.x;
if (_iPad) { if (_iPad) {
START_X = _controlArea.size.width * .75 + _controlArea.origin.x;
START_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
SELECT_X = _controlArea.size.width * .25 + _controlArea.origin.x;
SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
// The analog sticks are kept closer to the sides on iPad // The analog sticks are kept closer to the sides on iPad
LS_CENTER_X = _controlArea.size.width * .18 + _controlArea.origin.x; LS_CENTER_X = _controlArea.size.width * .15 + _controlArea.origin.x;
LS_CENTER_Y = _controlArea.size.height * .75 + _controlArea.origin.y; RS_CENTER_X = _controlArea.size.width * .85 + _controlArea.origin.x;
RS_CENTER_X = _controlArea.size.width * .82 + _controlArea.origin.x;
RS_CENTER_Y = _controlArea.size.height * .75 + _controlArea.origin.y;
} else {
START_X = _controlArea.size.width * .6 + _controlArea.origin.x;
START_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
SELECT_X = _controlArea.size.width * .4 + _controlArea.origin.x;
SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
LS_CENTER_X = _controlArea.size.width * .25 + _controlArea.origin.x;
LS_CENTER_Y = _controlArea.size.height * .75 + _controlArea.origin.y;
RS_CENTER_X = _controlArea.size.width * .75 + _controlArea.origin.x;
RS_CENTER_Y = _controlArea.size.height * .75 + _controlArea.origin.y;
} }
} }
@@ -291,10 +285,7 @@ static float L3_Y;
// Start with the default complex layout // Start with the default complex layout
[self setupComplexControls]; [self setupComplexControls];
START_X = _controlArea.size.width * .6 + _controlArea.origin.x;
START_Y = _controlArea.size.height * .9 + _controlArea.origin.y; START_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
SELECT_X = _controlArea.size.width * .4 + _controlArea.origin.x;
SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y; SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
L2_Y = _controlArea.size.height * .9 + _controlArea.origin.y; L2_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
@@ -302,6 +293,20 @@ static float L3_Y;
R2_Y = _controlArea.size.height * .9 + _controlArea.origin.y; R2_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
R2_X = _controlArea.size.width * .9 + _controlArea.origin.x; R2_X = _controlArea.size.width * .9 + _controlArea.origin.x;
if (_iPad) {
// Lower the D-pad and buttons on iPad
D_PAD_CENTER_Y = _controlArea.size.height * .75 + _controlArea.origin.y;
BUTTON_CENTER_Y = _controlArea.size.height * .75 + _controlArea.origin.y;
// Move Start and Select closer to sides
SELECT_X = _controlArea.size.width * .2 + _controlArea.origin.x;
START_X = _controlArea.size.width * .8 + _controlArea.origin.x;
}
else {
SELECT_X = _controlArea.size.width * .4 + _controlArea.origin.x;
START_X = _controlArea.size.width * .6 + _controlArea.origin.x;
}
} }
- (void) setupComplexControls - (void) setupComplexControls
@@ -315,9 +320,9 @@ static float L3_Y;
{ {
// The analog sticks are kept closer to the sides on iPad // The analog sticks are kept closer to the sides on iPad
LS_CENTER_X = _controlArea.size.width * .22 + _controlArea.origin.x; LS_CENTER_X = _controlArea.size.width * .22 + _controlArea.origin.x;
LS_CENTER_Y = _controlArea.size.height * .75 + _controlArea.origin.y; LS_CENTER_Y = _controlArea.size.height * .80 + _controlArea.origin.y;
RS_CENTER_X = _controlArea.size.width * .77 + _controlArea.origin.x; RS_CENTER_X = _controlArea.size.width * .77 + _controlArea.origin.x;
RS_CENTER_Y = _controlArea.size.height * .75 + _controlArea.origin.y; RS_CENTER_Y = _controlArea.size.height * .80 + _controlArea.origin.y;
} }
else else
{ {
@@ -332,18 +337,24 @@ static float L3_Y;
SELECT_X = _controlArea.size.width * .1 + _controlArea.origin.x; SELECT_X = _controlArea.size.width * .1 + _controlArea.origin.x;
SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y; SELECT_Y = _controlArea.size.height * .9 + _controlArea.origin.y;
L1_X = _controlArea.size.width * .1 + _controlArea.origin.x;
L1_Y = _controlArea.size.height * .27 + _controlArea.origin.y; L1_Y = _controlArea.size.height * .27 + _controlArea.origin.y;
L2_X = _controlArea.size.width * .1 + _controlArea.origin.x;
L2_Y = _controlArea.size.height * .1 + _controlArea.origin.y; L2_Y = _controlArea.size.height * .1 + _controlArea.origin.y;
R1_X = _controlArea.size.width * .9 + _controlArea.origin.x;
R1_Y = _controlArea.size.height * .27 + _controlArea.origin.y; R1_Y = _controlArea.size.height * .27 + _controlArea.origin.y;
R2_X = _controlArea.size.width * .9 + _controlArea.origin.x;
R2_Y = _controlArea.size.height * .1 + _controlArea.origin.y; R2_Y = _controlArea.size.height * .1 + _controlArea.origin.y;
L3_X = _controlArea.size.width * .25 + _controlArea.origin.x;
L3_Y = _controlArea.size.height * .75 + _controlArea.origin.y; if (_iPad) {
R3_X = _controlArea.size.width * .75 + _controlArea.origin.x; // Move L/R buttons closer to the side on iPad
R3_Y = _controlArea.size.height * .75 + _controlArea.origin.y; L1_X = _controlArea.size.width * .05 + _controlArea.origin.x;
L2_X = _controlArea.size.width * .05 + _controlArea.origin.x;
R1_X = _controlArea.size.width * .95 + _controlArea.origin.x;
R2_X = _controlArea.size.width * .95 + _controlArea.origin.x;
}
else {
L1_X = _controlArea.size.width * .1 + _controlArea.origin.x;
L2_X = _controlArea.size.width * .1 + _controlArea.origin.x;
R1_X = _controlArea.size.width * .9 + _controlArea.origin.x;
R2_X = _controlArea.size.width * .9 + _controlArea.origin.x;
}
} }
- (void) drawButtons { - (void) drawButtons {
@@ -940,7 +951,7 @@ static float L3_Y;
|| [self isDeadZone:touch || [self isDeadZone:touch
startX:_rightStickBackground.frame.origin.x - 15 startX:_rightStickBackground.frame.origin.x - 15
startY:_rightStickBackground.frame.origin.y - 15 startY:_rightStickBackground.frame.origin.y - 15
endX:_rightStickBackground.frame.origin.x + _rightStickBackground.frame.size.width + 15 endX:_rightStickBackground.frame.origin.y + _rightStickBackground.frame.size.width + 15
endY:_view.frame.origin.y + _view.frame.size.height]; endY:_view.frame.origin.y + _view.frame.size.height];
} }