Optimize arrow finding code & add commas to scores

This commit is contained in:
2025-06-05 21:31:48 -07:00
parent ccc6a5431c
commit a69f4cc73d
10 changed files with 54 additions and 33 deletions

View File

@@ -8,7 +8,8 @@ public class ButtonToScene : MonoBehaviour
void Awake() void Awake()
{ {
gameObject.GetComponent<Button>().onClick.AddListener(async () => { gameObject.GetComponent<Button>().onClick.AddListener(async () =>
{
await SceneManager.LoadSceneAsync(sceneName); await SceneManager.LoadSceneAsync(sceneName);
}); });
} }

View File

@@ -25,6 +25,11 @@ public class GamePlayer : MonoBehaviour
private float nextUpdate; private float nextUpdate;
private float fps; private float fps;
public SpriteRenderer overlayRender; public SpriteRenderer overlayRender;
public GameObject leftArrow;
public GameObject rightArrow;
public GameObject jumpArrow;
public GameObject restartButton;
public GameObject backButton;
void Awake() void Awake()
{ {
@@ -81,14 +86,14 @@ public class GamePlayer : MonoBehaviour
PlayerPrefs.Save(); PlayerPrefs.Save();
backgroundMusic.volume = PlayerPrefs.GetFloat("musicVolume", 1f); backgroundMusic.volume = PlayerPrefs.GetFloat("musicVolume", 1f);
screenWidth = Camera.main.orthographicSize * 2f * Camera.main.aspect; screenWidth = Camera.main.orthographicSize * 2f * Camera.main.aspect;
highScoreText.text = $"High Score: {highscore}"; highScoreText.text = $"High Score: {Tools.FormatWithCommas(highscore)}";
if (Application.isMobilePlatform) if (Application.isMobilePlatform)
{ {
GameObject leftArrow = new("LeftArrow"); leftArrow = new("LeftArrow");
GameObject rightArrow = new("RightArrow"); rightArrow = new("RightArrow");
GameObject jumpArrow = new("JumpArrow"); jumpArrow = new("JumpArrow");
GameObject restartButton = new("RestartButton"); restartButton = new("RestartButton");
GameObject backButton = new("BackButton"); backButton = new("BackButton");
leftArrow.AddComponent<SpriteRenderer>(); leftArrow.AddComponent<SpriteRenderer>();
rightArrow.AddComponent<SpriteRenderer>(); rightArrow.AddComponent<SpriteRenderer>();
jumpArrow.AddComponent<SpriteRenderer>(); jumpArrow.AddComponent<SpriteRenderer>();
@@ -96,10 +101,15 @@ public class GamePlayer : MonoBehaviour
backButton.AddComponent<SpriteRenderer>(); backButton.AddComponent<SpriteRenderer>();
leftArrow.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Arrow"); leftArrow.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Arrow");
leftArrow.GetComponent<SpriteRenderer>().sortingOrder = 1000;
rightArrow.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Arrow"); rightArrow.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Arrow");
rightArrow.GetComponent<SpriteRenderer>().sortingOrder = 1000;
jumpArrow.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Arrow"); jumpArrow.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Arrow");
jumpArrow.GetComponent<SpriteRenderer>().sortingOrder = 1000;
restartButton.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Restart"); restartButton.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Restart");
restartButton.GetComponent<SpriteRenderer>().sortingOrder = 1000;
backButton.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Back"); backButton.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Back");
backButton.GetComponent<SpriteRenderer>().sortingOrder = 1000;
leftArrow.transform.rotation = UnityEngine.Quaternion.Euler(0f, 0f, 90f); leftArrow.transform.rotation = UnityEngine.Quaternion.Euler(0f, 0f, 90f);
rightArrow.transform.rotation = UnityEngine.Quaternion.Euler(0f, 0f, -90f); rightArrow.transform.rotation = UnityEngine.Quaternion.Euler(0f, 0f, -90f);
@@ -161,11 +171,6 @@ public class GamePlayer : MonoBehaviour
} }
if (Application.isMobilePlatform) if (Application.isMobilePlatform)
{ {
GameObject leftArrow = GameObject.Find("LeftArrow");
GameObject rightArrow = GameObject.Find("RightArrow");
GameObject jumpArrow = GameObject.Find("JumpArrow");
GameObject restartButton = GameObject.Find("RestartButton");
GameObject backButton = GameObject.Find("BackButton");
if (!Application.isMobilePlatform) if (!Application.isMobilePlatform)
{ {
if (Mouse.current.leftButton.isPressed) if (Mouse.current.leftButton.isPressed)
@@ -197,7 +202,8 @@ public class GamePlayer : MonoBehaviour
else else
{ {
var touches = UnityEngine.InputSystem.EnhancedTouch.Touch.activeTouches; var touches = UnityEngine.InputSystem.EnhancedTouch.Touch.activeTouches;
for (int i = 0; i < touches.Count; i++) { for (int i = 0; i < touches.Count; i++)
{
var pos = touches[i].screenPosition; var pos = touches[i].screenPosition;
UnityEngine.Vector3 clickPosition = Camera.main.ScreenToWorldPoint(new UnityEngine.Vector3(pos.x, pos.y, 0f)); UnityEngine.Vector3 clickPosition = Camera.main.ScreenToWorldPoint(new UnityEngine.Vector3(pos.x, pos.y, 0f));
clickPosition.z = 0f; clickPosition.z = 0f;
@@ -358,12 +364,6 @@ public class GamePlayer : MonoBehaviour
ClampPosition(screenWidth, bird); ClampPosition(screenWidth, bird);
if (Application.isMobilePlatform) if (Application.isMobilePlatform)
{ {
GameObject leftArrow = GameObject.Find("LeftArrow");
GameObject rightArrow = GameObject.Find("RightArrow");
GameObject jumpArrow = GameObject.Find("JumpArrow");
GameObject restartButton = GameObject.Find("RestartButton");
GameObject backButton = GameObject.Find("BackButton");
leftArrow.transform.position = new UnityEngine.Vector3(-screenWidth / 2.5f, -4f, 0f); leftArrow.transform.position = new UnityEngine.Vector3(-screenWidth / 2.5f, -4f, 0f);
rightArrow.transform.position = new UnityEngine.Vector3(screenWidth / 2.5f, -4f, 0f); rightArrow.transform.position = new UnityEngine.Vector3(screenWidth / 2.5f, -4f, 0f);
restartButton.transform.position = new UnityEngine.Vector3(screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0f); restartButton.transform.position = new UnityEngine.Vector3(screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0f);
@@ -534,13 +534,12 @@ public class GamePlayer : MonoBehaviour
} }
PlayerPrefs.SetString("HighScoreV2", highscore.ToString()); PlayerPrefs.SetString("HighScoreV2", highscore.ToString());
PlayerPrefs.Save(); PlayerPrefs.Save();
scoreText.text = "Score: " + score; scoreText.text = "Score: " + Tools.FormatWithCommas(score);
highScoreText.text = "High Score: " + highscore; highScoreText.text = "High Score: " + Tools.FormatWithCommas(highscore);
} }
void CheckIfGrounded() void CheckIfGrounded()
{ {
GameObject jumpArrow = GameObject.Find("JumpArrow");
isGrounded = bird.transform.position.y <= -4.1299996f; isGrounded = bird.transform.position.y <= -4.1299996f;
rb.gravityScale = isGrounded ? 0f : 1.5f; rb.gravityScale = isGrounded ? 0f : 1.5f;

View File

@@ -54,7 +54,8 @@ public class LeaderboardsMenu : MonoBehaviour
UpdateStatus(false); UpdateStatus(false);
string response = request.downloadHandler.text; string response = request.downloadHandler.text;
var splitResponse = response.Split(';'); var splitResponse = response.Split(';');
for (int i = 0; i < splitResponse.Length; i++) { for (int i = 0; i < splitResponse.Length; i++)
{
var entry = splitResponse[i]; var entry = splitResponse[i];
var split = entry.Split(":"); var split = entry.Split(":");
var username = Encoding.UTF8.GetString(Convert.FromBase64String(split[0])); var username = Encoding.UTF8.GetString(Convert.FromBase64String(split[0]));
@@ -70,7 +71,7 @@ public class LeaderboardsMenu : MonoBehaviour
var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>(); var highScoreText = entryInfo.transform.GetChild(1).GetComponent<TMP_Text>();
usernameText.text = $"{username} (#{i + 1})"; usernameText.text = $"{username} (#{i + 1})";
highScoreText.text += highScore; highScoreText.text += Tools.FormatWithCommas(highScore);
playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon); playerIcon.sprite = Resources.Load<Sprite>("Icons/Icons/bird_" + icon);
if (icon == "1") if (icon == "1")
{ {

View File

@@ -1,4 +1,5 @@
using UnityEngine; using System.Numerics;
using UnityEngine;
public static class Tools public static class Tools
{ {
@@ -15,9 +16,28 @@ public static class Tools
else if (user == 4) else if (user == 4)
{ {
return Resources.Load<Sprite>("Icons/Icons/bird_-3"); return Resources.Load<Sprite>("Icons/Icons/bird_-3");
} else }
else
{ {
return Resources.Load<Sprite>("Icons/Icons/bird_1"); return Resources.Load<Sprite>("Icons/Icons/bird_1");
} }
} }
public static string FormatWithCommas(string number)
{
try
{
BigInteger bigInt = BigInteger.Parse(number);
return FormatWithCommas(bigInt);
}
catch
{
return number;
}
}
public static string FormatWithCommas(BigInteger number)
{
return string.Format("{0:N0}", number);
}
} }