DPAD implemention

This commit is contained in:
TrueZhuangjia committed 2025-01-26 10:57:10 +08:00
1 parent e2bd8b1512
commit 4e85d3d079
3 files changed
+24 -31

No files matched your search

+18 -24
View File
@@ -418,8 +418,7 @@ import UIKit
} }
let nearZeroPoint = abs(offSetX)<28 && abs(offSetY)<28 let nearZeroPoint = abs(offSetX)<28 && abs(offSetY)<28
// NSLog("deltaX: %f, detalY: %f", deltaX, deltaY)
NSLog("deltaX: %f, detalY: %f", deltaX, deltaY)
var buttonPressed = 0; var buttonPressed = 0;
if abs(degrees) < triggeringAngle { if abs(degrees) < triggeringAngle {
@@ -445,7 +444,7 @@ import UIKit
switch keyString { switch keyString {
case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["W"]!,Int8(KEY_ACTION_DOWN), 0) case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["W"]!,Int8(KEY_ACTION_DOWN), 0)
case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["UP_ARROW"]!,Int8(KEY_ACTION_DOWN), 0) case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["UP_ARROW"]!,Int8(KEY_ACTION_DOWN), 0)
case "DPAD": break case "DPAD": self.onScreenControls.pressDownControllerButton(UP_FLAG)
default: break default: break
} }
} }
@@ -454,7 +453,7 @@ import UIKit
switch keyString { switch keyString {
case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["W"]!,Int8(KEY_ACTION_UP), 0) case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["W"]!,Int8(KEY_ACTION_UP), 0)
case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["UP_ARROW"]!,Int8(KEY_ACTION_UP), 0) case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["UP_ARROW"]!,Int8(KEY_ACTION_UP), 0)
case "DPAD": break case "DPAD": self.onScreenControls.releaseControllerButton(UP_FLAG)
default: break default: break
} }
} }
@@ -463,7 +462,7 @@ import UIKit
switch keyString { switch keyString {
case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["S"]!,Int8(KEY_ACTION_DOWN), 0) case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["S"]!,Int8(KEY_ACTION_DOWN), 0)
case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["DOWN_ARROW"]!,Int8(KEY_ACTION_DOWN), 0) case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["DOWN_ARROW"]!,Int8(KEY_ACTION_DOWN), 0)
case "DPAD": break case "DPAD": self.onScreenControls.pressDownControllerButton(DOWN_FLAG)
default: break default: break
} }
} }
@@ -472,7 +471,7 @@ import UIKit
switch keyString { switch keyString {
case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["S"]!,Int8(KEY_ACTION_UP), 0) case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["S"]!,Int8(KEY_ACTION_UP), 0)
case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["DOWN_ARROW"]!,Int8(KEY_ACTION_UP), 0) case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["DOWN_ARROW"]!,Int8(KEY_ACTION_UP), 0)
case "DPAD": break case "DPAD": self.onScreenControls.releaseControllerButton(DOWN_FLAG)
default: break default: break
} }
} }
@@ -481,7 +480,7 @@ import UIKit
switch keyString { switch keyString {
case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["A"]!,Int8(KEY_ACTION_DOWN), 0) case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["A"]!,Int8(KEY_ACTION_DOWN), 0)
case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["LEFT_ARROW"]!,Int8(KEY_ACTION_DOWN), 0) case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["LEFT_ARROW"]!,Int8(KEY_ACTION_DOWN), 0)
case "DPAD": break case "DPAD": self.onScreenControls.pressDownControllerButton(LEFT_FLAG)
default: break default: break
} }
} }
@@ -490,7 +489,7 @@ import UIKit
switch keyString { switch keyString {
case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["A"]!,Int8(KEY_ACTION_UP), 0) case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["A"]!,Int8(KEY_ACTION_UP), 0)
case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["LEFT_ARROW"]!,Int8(KEY_ACTION_UP), 0) case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["LEFT_ARROW"]!,Int8(KEY_ACTION_UP), 0)
case "DPAD": break case "DPAD": self.onScreenControls.releaseControllerButton(LEFT_FLAG)
default: break default: break
} }
} }
@@ -499,7 +498,7 @@ import UIKit
switch keyString { switch keyString {
case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["D"]!,Int8(KEY_ACTION_DOWN), 0) case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["D"]!,Int8(KEY_ACTION_DOWN), 0)
case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["RIGHT_ARROW"]!,Int8(KEY_ACTION_DOWN), 0) case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["RIGHT_ARROW"]!,Int8(KEY_ACTION_DOWN), 0)
case "DPAD": break case "DPAD": self.onScreenControls.pressDownControllerButton(RIGHT_FLAG)
default: break default: break
} }
} }
@@ -508,7 +507,7 @@ import UIKit
switch keyString { switch keyString {
case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["D"]!,Int8(KEY_ACTION_UP), 0) case "WASDPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["D"]!,Int8(KEY_ACTION_UP), 0)
case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["RIGHT_ARROW"]!,Int8(KEY_ACTION_UP), 0) case "ARROWPAD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["RIGHT_ARROW"]!,Int8(KEY_ACTION_UP), 0)
case "DPAD": break case "DPAD": self.onScreenControls.releaseControllerButton(RIGHT_FLAG)
default: break default: break
} }
} }
@@ -629,23 +628,23 @@ import UIKit
self.showStickIndicator() self.showStickIndicator()
if quickDoubleTapDetected { if quickDoubleTapDetected {
self.l3r3Indicator = self.createAndShowl3r3Indicator() self.l3r3Indicator = self.createAndShowl3r3Indicator()
self.onScreenControls.pressDownL3()} self.onScreenControls.pressDownControllerButton(LS_CLK_FLAG)}
break break
case "RSPAD": case "RSPAD":
self.showStickIndicator() self.showStickIndicator()
if quickDoubleTapDetected { if quickDoubleTapDetected {
self.l3r3Indicator = self.createAndShowl3r3Indicator() self.l3r3Indicator = self.createAndShowl3r3Indicator()
self.onScreenControls.pressDownR3()} self.onScreenControls.pressDownControllerButton(RS_CLK_FLAG)}
break break
case "LSVPAD": case "LSVPAD":
if quickDoubleTapDetected { if quickDoubleTapDetected {
self.l3r3Indicator = self.createAndShowl3r3Indicator() self.l3r3Indicator = self.createAndShowl3r3Indicator()
self.onScreenControls.pressDownL3()} self.onScreenControls.pressDownControllerButton(LS_CLK_FLAG)}
break break
case "RSVPAD": case "RSVPAD":
if quickDoubleTapDetected { if quickDoubleTapDetected {
self.l3r3Indicator = self.createAndShowl3r3Indicator() self.l3r3Indicator = self.createAndShowl3r3Indicator()
self.onScreenControls.pressDownR3()} self.onScreenControls.pressDownControllerButton(RS_CLK_FLAG)}
break break
case "DPAD", "WASDPAD", "ARROWPAD": case "DPAD", "WASDPAD", "ARROWPAD":
self.lrudIndicatorBall = createAndShowLrudBall(at: touchBeganLocation) self.lrudIndicatorBall = createAndShowLrudBall(at: touchBeganLocation)
@@ -724,20 +723,15 @@ import UIKit
case "LSPAD": case "LSPAD":
self.sendLeftStickTouchPadEvent(inputX: offSetX, inputY: offSetY) self.sendLeftStickTouchPadEvent(inputX: offSetX, inputY: offSetY)
updateStickBallPosition() updateStickBallPosition()
break
case "RSPAD": case "RSPAD":
self.sendRightStickTouchPadEvent(inputX: offSetX, inputY: offSetY); self.sendRightStickTouchPadEvent(inputX: offSetX, inputY: offSetY);
updateStickBallPosition() updateStickBallPosition()
break
case "LSVPAD": case "LSVPAD":
self.sendLeftStickTouchPadEvent(inputX: deltaX, inputY: deltaY) self.sendLeftStickTouchPadEvent(inputX: deltaX, inputY: deltaY)
break
case "RSVPAD": case "RSVPAD":
self.sendRightStickTouchPadEvent(inputX: deltaX, inputY: deltaY); self.sendRightStickTouchPadEvent(inputX: deltaX, inputY: deltaY);
break
case "DPAD", "WASDPAD", "ARROWPAD": case "DPAD", "WASDPAD", "ARROWPAD":
handleLrudTouchMove() handleLrudTouchMove()
break
default: default:
break break
} }
@@ -755,18 +749,14 @@ import UIKit
self.onScreenControls.clearLeftStickTouchPadFlag() self.onScreenControls.clearLeftStickTouchPadFlag()
self.crossMarkLayer.removeFromSuperlayer() self.crossMarkLayer.removeFromSuperlayer()
self.stickBallLayer.removeFromSuperlayer() self.stickBallLayer.removeFromSuperlayer()
break
case "RSPAD": case "RSPAD":
self.onScreenControls.clearRightStickTouchPadFlag() self.onScreenControls.clearRightStickTouchPadFlag()
self.crossMarkLayer.removeFromSuperlayer() self.crossMarkLayer.removeFromSuperlayer()
self.stickBallLayer.removeFromSuperlayer() self.stickBallLayer.removeFromSuperlayer()
break
case "LSVPAD": case "LSVPAD":
self.onScreenControls.clearLeftStickTouchPadFlag() self.onScreenControls.clearLeftStickTouchPadFlag()
break
case "RSVPAD": case "RSVPAD":
self.onScreenControls.clearRightStickTouchPadFlag() self.onScreenControls.clearRightStickTouchPadFlag()
break
case "WASDPAD": case "WASDPAD":
LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["W"]!,Int8(KEY_ACTION_UP), 0) LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["W"]!,Int8(KEY_ACTION_UP), 0)
LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["A"]!,Int8(KEY_ACTION_UP), 0) LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["A"]!,Int8(KEY_ACTION_UP), 0)
@@ -777,7 +767,11 @@ import UIKit
LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["RIGHT_ARROW"]!,Int8(KEY_ACTION_UP), 0) LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["RIGHT_ARROW"]!,Int8(KEY_ACTION_UP), 0)
LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["UP_ARROW"]!,Int8(KEY_ACTION_UP), 0) LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["UP_ARROW"]!,Int8(KEY_ACTION_UP), 0)
LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["DOWN_ARROW"]!,Int8(KEY_ACTION_UP), 0) LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["DOWN_ARROW"]!,Int8(KEY_ACTION_UP), 0)
case "DPAD": break case "DPAD":
self.onScreenControls.releaseControllerButton(LEFT_FLAG)
self.onScreenControls.releaseControllerButton(RIGHT_FLAG)
self.onScreenControls.releaseControllerButton(UP_FLAG)
self.onScreenControls.releaseControllerButton(DOWN_FLAG)
default: default:
break break
} }
+2 -2
View File
@@ -109,8 +109,8 @@ typedef NS_ENUM(NSInteger, OnScreenControlsLevel) {
- (void) clearRightStickTouchPadFlag; - (void) clearRightStickTouchPadFlag;
- (void) sendLeftStickTouchPadEvent:(CGFloat) stickX : (CGFloat) stickY; - (void) sendLeftStickTouchPadEvent:(CGFloat) stickX : (CGFloat) stickY;
- (void) clearLeftStickTouchPadFlag; - (void) clearLeftStickTouchPadFlag;
- (void) pressDownL3; - (void) pressDownControllerButton: (int)flag;
- (void) pressDownR3; - (void) releaseControllerButton: (int)flag;
- (id) initWithView:(UIView*)view controllerSup:(ControllerSupport*)controllerSupport streamConfig:(StreamConfiguration*)streamConfig; - (id) initWithView:(UIView*)view controllerSup:(ControllerSupport*)controllerSupport streamConfig:(StreamConfiguration*)streamConfig;
- (BOOL) handleTouchDownEvent:(NSSet*)touches; - (BOOL) handleTouchDownEvent:(NSSet*)touches;
+4 -5
View File
@@ -169,17 +169,16 @@ static float L3_Y;
[_controllerSupport updateFinished:_controller]; [_controllerSupport updateFinished:_controller];
} }
- (void) pressDownL3{ - (void) pressDownControllerButton: (int)flag{
[_controllerSupport setButtonFlag:_controller flags:LS_CLK_FLAG]; [_controllerSupport setButtonFlag:_controller flags:flag];
[_controllerSupport updateFinished:_controller]; [_controllerSupport updateFinished:_controller];
} }
- (void) pressDownR3{ - (void) releaseControllerButton: (int)flag{
[_controllerSupport setButtonFlag:_controller flags:RS_CLK_FLAG]; [_controllerSupport clearButtonFlag:_controller flags:flag];
[_controllerSupport updateFinished:_controller]; [_controllerSupport updateFinished:_controller];
} }
// sending self as an instance to OnScreenButtonView // sending self as an instance to OnScreenButtonView
- (void)sendInstance{ - (void)sendInstance{
NSLog(@"OnScreenControls is sending its instance..."); NSLog(@"OnScreenControls is sending its instance...");