From 2e477a5eceb61f99a65819dc3eba5dd55c9c10eb Mon Sep 17 00:00:00 2001 From: Mohammad Javad Nazirzadeh Date: Mon, 27 Mar 2023 12:54:06 +1100 Subject: [PATCH 1/5] FIx: arrow buttons problem --- .../Scripts/View/Control/NavigationScript.cs | 2 + Assets/Scripts/View/Control/ScrollView.cs | 67 +++++++++++++++++- Assets/Scripts/View/Items/ButtonScript.cs | 4 +- Assets/_Scenes/NodulusGame.unity | Bin 104452 -> 112108 bytes 4 files changed, 69 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/View/Control/NavigationScript.cs b/Assets/Scripts/View/Control/NavigationScript.cs index 01499a9..1804de4 100644 --- a/Assets/Scripts/View/Control/NavigationScript.cs +++ b/Assets/Scripts/View/Control/NavigationScript.cs @@ -42,6 +42,8 @@ public class NavigationScript : MonoBehaviour { ButtonType.Settings, scrollView => scrollView.ToggleSettings() }, { ButtonType.MusicToggle, scrollView => scrollView.ToggleMusic() }, { ButtonType.SfxToggle, scrollView => scrollView.ToggleSfx() }, + { ButtonType.ScrollUp, scrollView => scrollView.ScrollUp() }, + { ButtonType.ScrollDown, scrollView => scrollView.ScrollDown() }, }; public bool IsTweening => _buttonSelect.IsTweening; diff --git a/Assets/Scripts/View/Control/ScrollView.cs b/Assets/Scripts/View/Control/ScrollView.cs index 0f22df6..d5dbc75 100644 --- a/Assets/Scripts/View/Control/ScrollView.cs +++ b/Assets/Scripts/View/Control/ScrollView.cs @@ -452,7 +452,8 @@ private void OnPuzzleWin(int level) private void OnPan(TKPanRecognizer recognizer) { - if (!_scrollEnabled) { + Debug.Log("OnPan"); + if (!_scrollEnabled) { return; } @@ -469,7 +470,57 @@ private void OnPan(TKPanRecognizer recognizer) transform.position = new Vector2(transform.position.x, clampedPos); } - private void OnPanComplete(TKPanRecognizer recognizer) + public void OnPanUp() + { + Debug.Log("OnPanUp"); + + if (!_scrollEnabled) + { + return; + } + + _isPanning = true; + + _panVelocity = Vector2.zero; + _magnetVelocity = Vector2.zero; + + // TODO: make configurable + const float scalingFactor = 5f; + + transform.Translate(Vector3.down * scalingFactor); + + var clampedPos = Mathf.Clamp(transform.position.y, _listBottom, _listTop); + transform.position = new Vector2(transform.position.x, clampedPos); + + + } + + public void OnPanDown() + { + + Debug.Log("OnPanDown"); + + if (!_scrollEnabled) + { + return; + } + + _isPanning = true; + + _panVelocity = Vector2.zero; + _magnetVelocity = Vector2.zero; + + // TODO: make configurable + const float scalingFactor = 5f; + transform.Translate(Vector3.up * scalingFactor); + + var clampedPos = Mathf.Clamp(transform.position.y, _listBottom, _listTop); + transform.position = new Vector2(transform.position.x, clampedPos); + + + } + + private void OnPanComplete(TKPanRecognizer recognizer) { if (!_scrollEnabled) { return; @@ -554,7 +605,17 @@ public void ToggleSfx() _gameAudio.SfxEnabled = !_gameAudio.SfxEnabled; } - public void ToggleFreeze() + public void ScrollUp() + { + Debug.Log("ScrollUpArrowPressed"); + OnPanUp(); + } + public void ScrollDown() + { + Debug.Log("ScrollDownArrowPressed"); + OnPanDown(); + } + public void ToggleFreeze() { _scrollEnabled = !_scrollEnabled; } diff --git a/Assets/Scripts/View/Items/ButtonScript.cs b/Assets/Scripts/View/Items/ButtonScript.cs index c3749a8..7128d8e 100644 --- a/Assets/Scripts/View/Items/ButtonScript.cs +++ b/Assets/Scripts/View/Items/ButtonScript.cs @@ -85,6 +85,8 @@ public enum ButtonType RestartLevel, Settings, MusicToggle, - SfxToggle + SfxToggle, + ScrollUp, + ScrollDown } } diff --git a/Assets/_Scenes/NodulusGame.unity b/Assets/_Scenes/NodulusGame.unity index c6b7526ef057fbf988af0d1a716002c928762400..1edd04c8d0d44cdc87aece3538029dde2ce3f514 100644 GIT binary patch delta 9559 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 JF`5M1|DV00n0zauBP*L$4!~|2~T3Yx)YARbx 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 Date: Mon, 27 Mar 2023 13:08:09 +1100 Subject: [PATCH 2/5] Code Improved (assigning in the inspector is by far more efficient in terms of speed) --- Assets/Scripts/View/Control/ScrollView.cs | 9 ++++----- Assets/_Scenes/NodulusGame.unity | Bin 112108 -> 112108 bytes 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Assets/Scripts/View/Control/ScrollView.cs b/Assets/Scripts/View/Control/ScrollView.cs index d5dbc75..65a0186 100644 --- a/Assets/Scripts/View/Control/ScrollView.cs +++ b/Assets/Scripts/View/Control/ScrollView.cs @@ -36,18 +36,17 @@ public class ScrollView : MonoBehaviour private int _cameraZoomId; + [SerializeField] private NavigationScript _navigation; + [SerializeField] private MoveDisplay _moveDisplay; + [SerializeField] private GameAudio _gameAudio; private void Awake() { // Set the maximum number of simultaneous tweens - LeanTween.init(30000); - - _navigation = GameObject.FindGameObjectWithTag("Navigation").GetComponent(); - _moveDisplay = GameObject.FindGameObjectWithTag("MoveDisplay").GetComponent(); - _gameAudio = GameObject.FindGameObjectWithTag("GameAudio").GetComponent(); + LeanTween.init(30000); // Set the game's strings to their localized versions var language = Levels.CurrentLanguage; diff --git a/Assets/_Scenes/NodulusGame.unity b/Assets/_Scenes/NodulusGame.unity index 1edd04c8d0d44cdc87aece3538029dde2ce3f514..913aab19858b871156541f0f8a159511f2e2d7b3 100644 GIT binary patch delta 17 ZcmaF!n(fVNwh20n35~j2bs6_>1prOo2i*Vw delta 17 ZcmaF!n(fVNwh20nUX8k2bs6_>1prMi2gd*a From 2306d7bc2083ec2ef854742f93c5dcc8ec84463e Mon Sep 17 00:00:00 2001 From: Mohammad Javad Nazirzadeh Date: Tue, 28 Mar 2023 09:22:00 +1100 Subject: [PATCH 3/5] Refactored and removed code duplication #10 --- .../Scripts/View/Control/NavigationScript.cs | 4 +- Assets/Scripts/View/Control/ScrollView.cs | 144 +++++++----------- Assets/_Scenes/NodulusGame.unity | Bin 112108 -> 112164 bytes 3 files changed, 56 insertions(+), 92 deletions(-) diff --git a/Assets/Scripts/View/Control/NavigationScript.cs b/Assets/Scripts/View/Control/NavigationScript.cs index 1804de4..893225a 100644 --- a/Assets/Scripts/View/Control/NavigationScript.cs +++ b/Assets/Scripts/View/Control/NavigationScript.cs @@ -42,8 +42,8 @@ public class NavigationScript : MonoBehaviour { ButtonType.Settings, scrollView => scrollView.ToggleSettings() }, { ButtonType.MusicToggle, scrollView => scrollView.ToggleMusic() }, { ButtonType.SfxToggle, scrollView => scrollView.ToggleSfx() }, - { ButtonType.ScrollUp, scrollView => scrollView.ScrollUp() }, - { ButtonType.ScrollDown, scrollView => scrollView.ScrollDown() }, + { ButtonType.ScrollUp, scrollView => scrollView.OnScrollUp() }, + { ButtonType.ScrollDown, scrollView => scrollView.OnScrollDown() }, }; public bool IsTweening => _buttonSelect.IsTweening; diff --git a/Assets/Scripts/View/Control/ScrollView.cs b/Assets/Scripts/View/Control/ScrollView.cs index 65a0186..55eef3e 100644 --- a/Assets/Scripts/View/Control/ScrollView.cs +++ b/Assets/Scripts/View/Control/ScrollView.cs @@ -15,6 +15,9 @@ namespace View.Control /// public class ScrollView : MonoBehaviour { + [SerializeField] + private float _scrollButtonScale; + public GameObject PuzzleGamePrefab; private bool _scrollEnabled; @@ -26,6 +29,7 @@ public class ScrollView : MonoBehaviour private float _listBottom; private float _listTop; private bool _isPanning; + private float _scrollSpeed; private Vector3 _panVelocity; private Vector3 _magnetVelocity; @@ -45,8 +49,8 @@ public class ScrollView : MonoBehaviour private void Awake() { - // Set the maximum number of simultaneous tweens - LeanTween.init(30000); + // Set the maximum number of simultaneous tweens + LeanTween.init(30000); // Set the game's strings to their localized versions var language = Levels.CurrentLanguage; @@ -451,89 +455,23 @@ private void OnPuzzleWin(int level) private void OnPan(TKPanRecognizer recognizer) { - Debug.Log("OnPan"); - if (!_scrollEnabled) { - return; - } - - _isPanning = true; - - _panVelocity = Vector2.zero; - _magnetVelocity = Vector2.zero; - - // TODO: make configurable - const float scalingFactor = 100f; - transform.Translate(Vector3.up * recognizer.deltaTranslation.y / scalingFactor); - - var clampedPos = Mathf.Clamp(transform.position.y, _listBottom, _listTop); - transform.position = new Vector2(transform.position.x, clampedPos); + ScrollBegin(recognizer.deltaTranslation.y); } - - public void OnPanUp() - { - Debug.Log("OnPanUp"); - - if (!_scrollEnabled) - { - return; - } - - _isPanning = true; - - _panVelocity = Vector2.zero; - _magnetVelocity = Vector2.zero; - - // TODO: make configurable - const float scalingFactor = 5f; - - transform.Translate(Vector3.down * scalingFactor); - - var clampedPos = Mathf.Clamp(transform.position.y, _listBottom, _listTop); - transform.position = new Vector2(transform.position.x, clampedPos); - - - } - - public void OnPanDown() - { - - Debug.Log("OnPanDown"); - - if (!_scrollEnabled) - { - return; - } - - _isPanning = true; - - _panVelocity = Vector2.zero; - _magnetVelocity = Vector2.zero; - - // TODO: make configurable - const float scalingFactor = 5f; - transform.Translate(Vector3.up * scalingFactor); - - var clampedPos = Mathf.Clamp(transform.position.y, _listBottom, _listTop); - transform.position = new Vector2(transform.position.x, clampedPos); - + private void OnPanComplete(TKPanRecognizer recognizer) + { + ScrollEnd(); } - - private void OnPanComplete(TKPanRecognizer recognizer) + public void OnScrollUp() { - if (!_scrollEnabled) { - return; - } - - _isPanning = false; - - // TODO: make configurable - var delta = recognizer.deltaTranslation.y; - var velocityMagnitude = Mathf.Abs(delta) < 5f ? 0f : Mathf.Clamp(delta, -50f, 50f); - - _panVelocity = Vector3.up * velocityMagnitude / VelocityScalingFactor; + ScrollBegin(-1f * _scrollButtonScale); + ScrollEnd(); + } + public void OnScrollDown() + { + ScrollBegin(_scrollButtonScale); + ScrollEnd(); } - private static void OnLevelStateChanged(Level level, bool win) { Levels.SaveLevel(level, win); @@ -602,21 +540,47 @@ public void ToggleMusic() public void ToggleSfx() { _gameAudio.SfxEnabled = !_gameAudio.SfxEnabled; + } + public void ToggleFreeze() + { + _scrollEnabled = !_scrollEnabled; } - public void ScrollUp() + private void ScrollBegin(float speed) { - Debug.Log("ScrollUpArrowPressed"); - OnPanUp(); + if (!_scrollEnabled) + { + return; + } + + _isPanning = true; + _scrollSpeed = speed; + _panVelocity = Vector2.zero; + _magnetVelocity = Vector2.zero; + + const float scalingFactor = 100f; + + transform.Translate(Vector3.up * speed / scalingFactor); + + var clampedPos = Mathf.Clamp(transform.position.y, _listBottom, _listTop); + transform.position = new Vector2(transform.position.x, clampedPos); } - public void ScrollDown() - { - Debug.Log("ScrollDownArrowPressed"); - OnPanDown(); - } - public void ToggleFreeze() + + private void ScrollEnd() { - _scrollEnabled = !_scrollEnabled; + if (!_scrollEnabled) + { + return; + } + + _isPanning = false; + + // TODO: make configurable + var delta = _scrollSpeed; + var velocityMagnitude = Mathf.Abs(delta) < 5f ? 0f : Mathf.Clamp(delta, -50f, 50f); + + _panVelocity = Vector3.up * velocityMagnitude / VelocityScalingFactor; } + } } diff --git a/Assets/_Scenes/NodulusGame.unity b/Assets/_Scenes/NodulusGame.unity index 913aab19858b871156541f0f8a159511f2e2d7b3..71bf16e409ef98942330ec8057b2b2e325dc8dd6 100644 GIT binary patch delta 2226 zcmYM#ZBSHI7zglk2gB7+cY)=lBo^{zt8o(3#-^FN>ol?&<1AT34a9DUq9KSZ3Wd6$ z)%NPbT2G%EV5HD-h?fjL(6l5UAe{!rUijj)TiH122e)j-YMgrh=bQ^?=9!0cf9LEu z_nzloZd^}2eIqrJomDK*j4xKHoF78IJhbjapL6)ar@bAMZCl*7CnBD#*fBR`Bv7*_ zrRy`-5+C1kISRq{ci8dvqkefw&=#a=_?G;#QYA1aO6j4S7t}=n6~KG z7c!%+b7|32atyJZ)nf|h#}rPgF_RBuE*oW?(j!*SkLXY%jJ47AO(p47P1Oe*>gu*M z2ZIguJF5eAH6vHg-djc^g@$9)ZW#VF#|i$4dpI&T2Dft(H>rJ@k)11WAKZ{ua(vmB z^0e&J5O_v&8(&N1_-dXLVEZ!|D}>2m<8bUgSHem7$g!L`uGyNMq1jI!uwWwKcCI@!@&0nGCIf;H60;qh#T z1G8(;Sy+3W=0Wm+5A0TKa>Ck!8@{c?l|gC*yZ4~8u=e*4Zt$ZYqaJX0A38#`bD$hD zf9~^h5_XyeM_xf^p&YU_`^ZQK*C~FB6J|f+yeOZ9i;BSU{fhBWGdMPBHYot^u2*cW zz3*c0UR-fgC%C^s@i-@xVx8t%nvi@zu~o<)pZQzPHYo|7YgByO5aK@mvs?2F6=X1b zgNm*5PEQQTC(%!(V0W`(RBt}Vzef+r&9+cGSR7JpmBSs)AsPakhZUQga3pn)_sV+- zQ37mhQEbhw*BmBCCbPFyvB?Rui?4g-y@bgF&Usa_^%`u`9HT~X_%+4WYw%&B3tvo} zxBPJ|%FQapk2J?=7TkSAvB?Q*4_y66&W@AeWG+9dILrx!{7H4Id{A*J0{f3C9^`~K z^o(XZ1;E~rVyuB`SyhoDpW_sDN=6-U8|T1zuhDFy3CSHmA*@oFrRHYUTIJ=f@)Yb;3XZ(4*jl?vvya*(zoGa&PT0A3x=J3Bi-y2s zZz{f}Yi+ycK}vw#Z!50ggm24mT1?L7^Uh|@!GAMulN@-cpKFej2VDLxaN+Cl$N7h4 z1&mQ6*u8?eLu(6dF}+;qd@gfay4h$@e)}-ewqMZ)7-{{ z$Ffv&EhWM35BM54lLM7H-8L;}*HS^Qk!?gqAImjzQ%B44jo}@Ogot>^R&P|$O_#BV O()Jtn(O|vNQv5&qBAfXD delta 2186 zcmY+_eN2^A90&08#M?DN2)Mwdh})`R7Udi^ROKvDiFX~+ZUh^%pix@&z1G*O3 zwIawT_ropL&1BgM#2ABC)ZL=(GJ>(WHU5ag-k0!?C3=L?%?GR?~I_~g8VXkkm@_^c;kJtq;T#WX9|<9i4dAwK0u;fQH=QSl1! z!$2Y0InX+D_lFx$pQakH{}EJ{T4!s{qjqrpql#@#E{-O@TYhanjmXY7D{khL%n{NY zr+IK>i()^g0*=F)XQ?2a*}GM7^EE=G@}ILbCOeN(CD?vU@exk=@=HH=$d!mw3)uI# zVl(eQG`px*a<$@Px^?ZpDRQdQGy@LTDE@}iwHyJ>0ZPkY?y6P%5+{sZG_zCA#Y<)2 z*fzxnIi+*lrn!`YvUNbQ`SNcYf7GqJ!O`uC&6m$=4$y?;Cls5p$1jKFLan4lIra|4 zVNMu(LbFZ9*P-*Bip|(}^vz=V#Y(CHpV_6@jD4r(C#hZXZp8;UVczG~Ov;7w(g=8X zkK(xAv8?ZV0(cUpd9Z7r;$}`b4sOj6D#&E^J+0X0gu}GPJuasjp-OOGP%%Dj8Aplc zX=(wN)+xr)yE*obpW2HjUDONq?ngxkGxk2sQJMh<>J{6ZFn0I*f6CTTO3Om$m@t<& zIq>CgYo4MqaJ&I1gxT+RG}{yeNAaACxuIDX`kq4FOWn-*^^K?qVYcM&)+RZZg+`jp z;tL*XQf~I-AMK^Ih~7ibDmKl7_nuO7rQ&SnaOmpR`!(BCBl(bGbN_u8eR8fD)D9j# ztT@gI_n<;^m_{T&r`ViDx^P@Bg-!F|X{u6J2 z4)c^|{DR}KHE0e|8Q9mx&$yVetIw~K%N(X4*oF1rV#co39HDO6`lw=?6UHtd+a`A* zLKEP;mld1C_Mql|S_Gdtrq~>|^_sm@oXZ@3MKRvO6&*;8$<8yV20Z=h)vX6LS5Z5- z|24&CLw_H+(tzYM7TreQUu4pNeTfCYI^0;-p11QAD z9ANwFA0+byXU>mx0);5$xQXL_%?q8>n#cEG_zkEKQ4UrCYY_#SPD+K1*pH<^Wcki#e*xHS;gJ Date: Thu, 30 Mar 2023 15:17:28 +1100 Subject: [PATCH 4/5] Fix: coding convention #10 --- Assets/Scripts/View/Control/ScrollView.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/View/Control/ScrollView.cs b/Assets/Scripts/View/Control/ScrollView.cs index 55eef3e..d886ade 100644 --- a/Assets/Scripts/View/Control/ScrollView.cs +++ b/Assets/Scripts/View/Control/ScrollView.cs @@ -548,8 +548,7 @@ public void ToggleFreeze() private void ScrollBegin(float speed) { - if (!_scrollEnabled) - { + if (!_scrollEnabled){ return; } @@ -568,8 +567,7 @@ private void ScrollBegin(float speed) private void ScrollEnd() { - if (!_scrollEnabled) - { + if (!_scrollEnabled){ return; } From e0bb2275596916cc84fbb9ac5e82316ce3f26f52 Mon Sep 17 00:00:00 2001 From: Mohammad Javad Nazirzadeh Date: Thu, 30 Mar 2023 15:36:42 +1100 Subject: [PATCH 5/5] Refactored to see the _puzzleGamePrefab variable in the Inspector but keep it non-accessible #10 --- Assets/Scripts/View/Control/ScrollView.cs | 5 +++-- Assets/_Scenes/NodulusGame.unity | Bin 112164 -> 112164 bytes 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/View/Control/ScrollView.cs b/Assets/Scripts/View/Control/ScrollView.cs index d886ade..acdea60 100644 --- a/Assets/Scripts/View/Control/ScrollView.cs +++ b/Assets/Scripts/View/Control/ScrollView.cs @@ -18,7 +18,8 @@ public class ScrollView : MonoBehaviour [SerializeField] private float _scrollButtonScale; - public GameObject PuzzleGamePrefab; + [SerializeField] + private GameObject _puzzleGamePrefab; private bool _scrollEnabled; @@ -344,7 +345,7 @@ private void GenerateLevelsList() private void GenerateLevel(int level, float margin, ref float prevOffset) { - var puzzleGame = Instantiate(PuzzleGamePrefab); + var puzzleGame = Instantiate(_puzzleGamePrefab); puzzleGame.name = $"PuzzleGame ({level})"; puzzleGame.transform.SetParent(transform); diff --git a/Assets/_Scenes/NodulusGame.unity b/Assets/_Scenes/NodulusGame.unity index 71bf16e409ef98942330ec8057b2b2e325dc8dd6..b9a5727337ba16483cd1b464abb3979026d0591a 100644 GIT binary patch delta 125 zcmZ4ThHc3kwh20n+c)aAEETQR>fuP?J8+%vZ&FOiyRCW}3=9lcHYcX0Gf&oC*}z)@ zUC^Y~8 delta 124 zcmZ4ThHc3kwh20nmpAIREEU~!c=@8HBQ;JM9Ci~N#SYYKFfcG&-kg}4&OBLnWdm<9 zklPK!JU}cz`Qcjm$v0P;@J