From 747997f46c47778ac13c1e69020ed34387bf0e0b Mon Sep 17 00:00:00 2001 From: True Zhuanjia Date: Fri, 23 Aug 2024 21:41:29 +0800 Subject: [PATCH] - Adjust stick style. - Add + button for iphone --- Limelight/Base.lproj/iPhone.storyboard | 58 ++++++++++++++++++-------- Limelight/Input/OnScreenControls.m | 14 +++++-- 2 files changed, 52 insertions(+), 20 deletions(-) diff --git a/Limelight/Base.lproj/iPhone.storyboard b/Limelight/Base.lproj/iPhone.storyboard index 42ac5768..0e7e10f5 100644 --- a/Limelight/Base.lproj/iPhone.storyboard +++ b/Limelight/Base.lproj/iPhone.storyboard @@ -702,25 +702,27 @@ ICAgICAgICAgICAgIA + + + - + diff --git a/Limelight/Input/OnScreenControls.m b/Limelight/Input/OnScreenControls.m index 16fd4530..23e2eb88 100644 --- a/Limelight/Input/OnScreenControls.m +++ b/Limelight/Input/OnScreenControls.m @@ -105,6 +105,7 @@ static float LS_CENTER_X; static float LS_CENTER_Y; static float RS_CENTER_X; static float RS_CENTER_Y; +static const float STICK_OPACITY = 0.63; static float START_X; static float START_Y; @@ -697,6 +698,7 @@ static float L3_Y; UIImage* leftStickImage = [UIImage imageNamed:@"StickInner"]; _leftStick.frame = CGRectMake(LS_CENTER_X - leftStickImage.size.width / 2, LS_CENTER_Y - leftStickImage.size.height / 2, leftStickImage.size.width, leftStickImage.size.height); _leftStick.contents = (id) leftStickImage.CGImage; + _leftStick.opacity = STICK_OPACITY; // make stick half transparent when it's idle [_view.layer addSublayer:_leftStick]; // create right analog stick @@ -711,12 +713,13 @@ static float L3_Y; _rightStick.frame = CGRectMake(RS_CENTER_X - rightStickImage.size.width / 2, RS_CENTER_Y - rightStickImage.size.height / 2, rightStickImage.size.width, rightStickImage.size.height); _rightStick.contents = (id) rightStickImage.CGImage; + _rightStick.opacity = STICK_OPACITY; // make stick half transparent when it's idle [_view.layer addSublayer:_rightStick]; // make stick larger if(_largerStickLR1){ - STICK_INNER_SIZE = rightStickImage.size.width *1.37; - STICK_OUTER_SIZE = rightStickBgImage.size.width *1.17; + STICK_INNER_SIZE = rightStickImage.size.width *1.33; + STICK_OUTER_SIZE = rightStickBgImage.size.width *1.10; _rightStick.bounds = _leftStick.bounds = CGRectMake(0, 0, STICK_INNER_SIZE, STICK_INNER_SIZE); _rightStickBackground.bounds = _leftStickBackground.bounds = CGRectMake(0, 0, STICK_OUTER_SIZE, STICK_OUTER_SIZE); } @@ -907,7 +910,8 @@ static float L3_Y; button.cornerRadius = 45; // 使用 shadowPath 定义阴影形状和扩展范围 - CGFloat spread = 15; // 扩散的大小 + CGFloat spread = 15; // 扩散的大小gggkkkoooovv + if([button.name isEqualToString:@"leftStick"] || [button.name isEqualToString:@"rightStick"]) spread = 12; CGRect largerRect = CGRectInset(button.bounds, -spread, -spread); UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRoundedRect:largerRect cornerRadius:button.cornerRadius]; button.shadowPath = shadowPath.CGPath; @@ -1044,6 +1048,7 @@ static float L3_Y; _r3Touch = touch; updated = true; } else if ([_leftStick.presentationLayer hitTest:touchLocation]) { + _leftStick.opacity = 1.0; // make stick opaque while being moved if (l3TouchStart != nil) { // Find elapsed time and convert to milliseconds // Use (-) modifier to conversion since receiver is earlier than now @@ -1059,6 +1064,7 @@ static float L3_Y; _lsTouch = touch; stickTouch = true; } else if ([_rightStick.presentationLayer hitTest:touchLocation]) { + _rightStick.opacity = 1.0; // make stick opaque while being moved if (r3TouchStart != nil) { // Find elapsed time and convert to milliseconds // Use (-) modifier to conversion since receiver is earlier than now @@ -1173,6 +1179,7 @@ static float L3_Y; } else if (touch == _lsTouch) { _leftStick.frame = CGRectMake(LS_CENTER_X - STICK_INNER_SIZE / 2, LS_CENTER_Y - STICK_INNER_SIZE / 2, STICK_INNER_SIZE, STICK_INNER_SIZE); _leftStick.shadowOpacity = 0.0; + _leftStick.opacity = STICK_OPACITY; // reset stick to half transparent [_controllerSupport updateLeftStick:_controller x:0 y:0]; [_controllerSupport clearButtonFlag:_controller flags:LS_CLK_FLAG]; l3TouchStart = [NSDate date]; @@ -1181,6 +1188,7 @@ static float L3_Y; } else if (touch == _rsTouch) { _rightStick.frame = CGRectMake(RS_CENTER_X - STICK_INNER_SIZE / 2, RS_CENTER_Y - STICK_INNER_SIZE / 2, STICK_INNER_SIZE, STICK_INNER_SIZE); _rightStick.shadowOpacity = 0.0; + _rightStick.opacity = STICK_OPACITY; [_controllerSupport updateRightStick:_controller x:0 y:0]; [_controllerSupport clearButtonFlag:_controller flags:RS_CLK_FLAG]; r3TouchStart = [NSDate date];