Update to new client game player script

This commit is contained in:
2025-05-31 16:27:10 -07:00
parent cdc56824be
commit d6418ed0ea
3 changed files with 380 additions and 293 deletions

View File

@@ -203,13 +203,13 @@ MonoBehaviour:
m_faceColor: m_faceColor:
serializedVersion: 2 serializedVersion: 2
rgba: 4294967295 rgba: 4294967295
m_fontSize: 32 m_fontSize: 28
m_fontSizeBase: 32 m_fontSizeBase: 28
m_fontWeight: 400 m_fontWeight: 400
m_enableAutoSizing: 0 m_enableAutoSizing: 0
m_fontSizeMin: 18 m_fontSizeMin: 18
m_fontSizeMax: 72 m_fontSizeMax: 72
m_fontStyle: 0 m_fontStyle: 1
m_HorizontalAlignment: 2 m_HorizontalAlignment: 2
m_VerticalAlignment: 512 m_VerticalAlignment: 512
m_textAlignment: 65535 m_textAlignment: 65535
@@ -632,6 +632,7 @@ GameObject:
- component: {fileID: 519420031} - component: {fileID: 519420031}
- component: {fileID: 519420029} - component: {fileID: 519420029}
- component: {fileID: 519420033} - component: {fileID: 519420033}
- component: {fileID: 519420034}
m_Layer: 0 m_Layer: 0
m_Name: MainCamera m_Name: MainCamera
m_TagString: MainCamera m_TagString: MainCamera
@@ -657,7 +658,7 @@ Camera:
m_Enabled: 1 m_Enabled: 1
serializedVersion: 2 serializedVersion: 2
m_ClearFlags: 2 m_ClearFlags: 2
m_BackGroundColor: {r: 0.1882353, g: 0.1882353, b: 0.1882353, a: 0} m_BackGroundColor: {r: 0.22745098, g: 0.22745098, b: 0.22745098, a: 0}
m_projectionMatrixMode: 1 m_projectionMatrixMode: 1
m_GateFitMode: 2 m_GateFitMode: 2
m_FOVAxisMode: 0 m_FOVAxisMode: 0
@@ -757,6 +758,28 @@ MonoBehaviour:
m_MipBias: 0 m_MipBias: 0
m_VarianceClampScale: 0.9 m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0 m_ContrastAdaptiveSharpening: 0
--- !u!114 &519420034
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e438446dc0ab8b6419c6cb63e0e72487, type: 3}
m_Name:
m_EditorClassIdentifier:
spawnRate: 1
scoreText: {fileID: 432923591}
highScoreText: {fileID: 1606868532}
boostText: {fileID: 497996347}
bird: {fileID: 808236448}
pausePanel: {fileID: 302151016}
rb: {fileID: 808236449}
backgroundMusic: {fileID: 1625416039}
fpsCounter: {fileID: 0}
overlayRender: {fileID: 0}
--- !u!1 &527090675 --- !u!1 &527090675
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -841,13 +864,13 @@ MonoBehaviour:
m_faceColor: m_faceColor:
serializedVersion: 2 serializedVersion: 2
rgba: 4294967295 rgba: 4294967295
m_fontSize: 32 m_fontSize: 28
m_fontSizeBase: 32 m_fontSizeBase: 28
m_fontWeight: 400 m_fontWeight: 400
m_enableAutoSizing: 0 m_enableAutoSizing: 0
m_fontSizeMin: 18 m_fontSizeMin: 18
m_fontSizeMax: 72 m_fontSizeMax: 72
m_fontStyle: 0 m_fontStyle: 1
m_HorizontalAlignment: 2 m_HorizontalAlignment: 2
m_VerticalAlignment: 512 m_VerticalAlignment: 512
m_textAlignment: 65535 m_textAlignment: 65535
@@ -1025,7 +1048,6 @@ GameObject:
- component: {fileID: 808236451} - component: {fileID: 808236451}
- component: {fileID: 808236450} - component: {fileID: 808236450}
- component: {fileID: 808236449} - component: {fileID: 808236449}
- component: {fileID: 808236452}
m_Layer: 0 m_Layer: 0
m_Name: Bird m_Name: Bird
m_TagString: Untagged m_TagString: Untagged
@@ -1130,23 +1152,6 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &808236452
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 808236448}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e438446dc0ab8b6419c6cb63e0e72487, type: 3}
m_Name:
m_EditorClassIdentifier:
pausePanel: {fileID: 302151016}
songLoop: {fileID: 1625416039}
scoreText: {fileID: 432923591}
highScoreText: {fileID: 1606868532}
boostText: {fileID: 497996347}
--- !u!1 &1035262210 --- !u!1 &1035262210
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -3,44 +3,95 @@ using UnityEngine;
public class Game : MonoBehaviour public class Game : MonoBehaviour
{ {
private float spawnRate = 1f; float spawnRate = 1f;
private float nextSpawnTime = 0f; float nextSpawnTime;
private int score = 0; int score;
private int highscore = 0; int highscore;
private float boostLeft = 0f; float boostLeft;
private float slownessLeft = 0f; float slownessLeft;
private float screenWidth = 0f; float screenWidth;
private bool isGrounded = false; bool isGrounded;
private readonly float groundYPosition = -4.1359f;
private GameObject bird;
private Rigidbody2D rb;
public GameObject pausePanel;
public AudioSource songLoop;
public TMP_Text scoreText; public TMP_Text scoreText;
public TMP_Text highScoreText; public TMP_Text highScoreText;
public TMP_Text boostText; public TMP_Text boostText;
public GameObject bird;
public GameObject pausePanel;
public Rigidbody2D rb;
public AudioSource backgroundMusic;
//public TMP_Text fpsCounter;
float nextUpdate;
float fps;
//public SpriteRenderer overlayRender;
void Awake() void Awake()
{ {
bird = GameObject.Find("Bird");
rb = bird.GetComponent<Rigidbody2D>();
highscore = PlayerPrefs.GetInt("HighScore", 0); highscore = PlayerPrefs.GetInt("HighScore", 0);
} }
void Start() void Start()
{ {
screenWidth = Camera.main.orthographicSize * 2 * Camera.main.aspect; Cursor.visible = false;
highScoreText.text = $"High Score: {highscore}"; Cursor.lockState = CursorLockMode.Locked;
SpriteRenderer component = bird.GetComponent<SpriteRenderer>();
if (PlayerPrefs.GetInt("Setting2", 0) == 1 || Application.isMobilePlatform) int num = PlayerPrefs.GetInt("icon", 1);
int num2 = PlayerPrefs.GetInt("overlay", 1);
if (num == 1)
{ {
GameObject leftArrow = new("LeftArrow"); if (PlayerPrefs.GetInt("userID", 0) == 1)
GameObject rightArrow = new("RightArrow"); {
GameObject jumpArrow = new("JumpArrow"); component.sprite = Resources.Load<Sprite>("icons/icons/bird_-1");
GameObject restartButton = new("RestartButton"); }
GameObject backButton = new("BackButton"); else if (PlayerPrefs.GetInt("userID", 0) == 2)
{
component.sprite = Resources.Load<Sprite>("icons/icons/bird_-2");
}
else if (PlayerPrefs.GetInt("userID", 0) == 4)
{
component.sprite = Resources.Load<Sprite>("icons/icons/bird_-3");
}
else if (PlayerPrefs.GetInt("userID", 0) == 6)
{
component.sprite = Resources.Load<Sprite>("icons/icons/bird_-4");
}
else
{
component.sprite = Resources.Load<Sprite>("icons/icons/bird_1");
}
}
else
{
component.sprite = Resources.Load<Sprite>("icons/icons/bird_" + num);
}
if (num2 == 8)
{
//overlayRender.sprite = Resources.Load<Sprite>("icons/overlays/overlay_8");
//overlayRender.transform.localPosition = new Vector3(-0.35f, 0.3f, 0f);
}
else
{
//overlayRender.sprite = Resources.Load<Sprite>("icons/overlays/overlay_" + num2);
}
if (component.sprite == null)
{
component.sprite = Resources.Load<Sprite>("icons/icons/bird_1");
PlayerPrefs.SetInt("icon", 1);
}
//if (overlayRender.sprite == null && num2 != 0)
//{
//overlayRender.sprite = Resources.Load<Sprite>("icons/overlays/overlay_1");
//PlayerPrefs.SetInt("overlay", 1);
//}
PlayerPrefs.Save();
backgroundMusic.volume = PlayerPrefs.GetFloat("musicVolume", 1f);
screenWidth = Camera.main.orthographicSize * 2f * Camera.main.aspect;
GameObject.Find("HighScoreText").GetComponent<TMP_Text>().text = $"High Score: {highscore}";
if (PlayerPrefs.GetInt("Setting2", 0) == 1)
{
GameObject leftArrow = new GameObject("LeftArrow");
GameObject rightArrow = new GameObject("RightArrow");
GameObject jumpArrow = new GameObject("JumpArrow");
GameObject restartButton = new GameObject("RestartButton");
GameObject backButton = new GameObject("BackButton");
leftArrow.AddComponent<SpriteRenderer>(); leftArrow.AddComponent<SpriteRenderer>();
rightArrow.AddComponent<SpriteRenderer>(); rightArrow.AddComponent<SpriteRenderer>();
jumpArrow.AddComponent<SpriteRenderer>(); jumpArrow.AddComponent<SpriteRenderer>();
@@ -53,127 +104,120 @@ public class Game : MonoBehaviour
restartButton.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Restart"); restartButton.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Restart");
backButton.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Back"); backButton.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Arrows/Back");
leftArrow.transform.rotation = Quaternion.Euler(0, 0, 90); leftArrow.transform.rotation = Quaternion.Euler(0f, 0f, 90f);
rightArrow.transform.rotation = Quaternion.Euler(0, 0, -90); rightArrow.transform.rotation = Quaternion.Euler(0f, 0f, -90f);
leftArrow.transform.position = new Vector3(-screenWidth / 2.5f, -4f, 0); leftArrow.transform.position = new Vector3(-screenWidth / 2.5f, -4f, 0f);
rightArrow.transform.position = new Vector3(screenWidth / 2.5f, -4f, 0); rightArrow.transform.position = new Vector3(screenWidth / 2.5f, -4f, 0f);
restartButton.transform.position = new Vector3(screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0); restartButton.transform.position = new Vector3(screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0f);
backButton.transform.position = new Vector3(-screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0); backButton.transform.position = new Vector3(-screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0f);
if (PlayerPrefs.GetInt("Setting3", 0) == 1) if (PlayerPrefs.GetInt("Setting3", 0) == 1)
{ {
leftArrow.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); leftArrow.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
rightArrow.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); rightArrow.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
jumpArrow.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); jumpArrow.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
restartButton.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); restartButton.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
backButton.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); backButton.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
jumpArrow.transform.position = new Vector3(screenWidth / 2.5f, -1f, 0); jumpArrow.transform.position = new Vector3(screenWidth / 2.5f, -1f, 0f);
} }
else else
{ {
leftArrow.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); leftArrow.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
rightArrow.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); rightArrow.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
jumpArrow.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); jumpArrow.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
restartButton.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); restartButton.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
backButton.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); backButton.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
jumpArrow.transform.position = new Vector3(screenWidth / 2.5f, -2f, 0); jumpArrow.transform.position = new Vector3(screenWidth / 2.5f, -2f, 0f);
} }
} }
} }
void MoveBird() void MoveBird()
{ {
float screenWidth = Camera.main.orthographicSize * 2 * Camera.main.aspect; float screenWidth = Camera.main.orthographicSize * 2f * Camera.main.aspect;
float baseSpeed = 0.18f * (screenWidth / 20.19257f); float baseSpeed = 0.18f * (screenWidth / 20.19257f);
bool doMoveRight = false; bool doMoveRight = false;
bool doMoveLeft = false; bool doMoveLeft = false;
bool doJump = false; bool doJump = false;
bool flag4 = false;
bool flag5 = false;
float movespeed = baseSpeed; float movespeed = baseSpeed;
if (boostLeft > 0f)
if (boostLeft > 0)
{ {
movespeed = baseSpeed * 1.39f; movespeed = baseSpeed * 1.39f;
} }
else if (slownessLeft > 0) else if (slownessLeft > 0f)
{ {
movespeed = baseSpeed * 0.56f; movespeed = baseSpeed * 0.56f;
} }
CheckIfGrounded(); CheckIfGrounded();
float horizontalInput = Input.GetAxisRaw("Horizontal");
float horizontalInput = Input.GetAxis("Horizontal");
if (!Application.isMobilePlatform) if (!Application.isMobilePlatform)
{ {
if (horizontalInput < 0 || Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A)) if (horizontalInput < 0f || Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A))
{ {
doMoveLeft = true; doMoveLeft = true;
} }
if (horizontalInput > 0 || Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D)) if (horizontalInput > 0f || Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D))
{ {
doMoveRight = true; doMoveRight = true;
} }
if (Input.GetKey(KeyCode.Space) || Input.GetKey(KeyCode.UpArrow) || (Input.GetMouseButton(0) && PlayerPrefs.GetInt("Setting2", 0) == 0) || Input.GetKey(KeyCode.JoystickButton0)) if (Input.GetKey(KeyCode.Space) || Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W) || (Input.GetMouseButton(0) && PlayerPrefs.GetInt("Setting2", 0) == 0) || Input.GetKey(KeyCode.JoystickButton0))
{ {
doJump = true; doJump = true;
} }
if (Input.GetKey(KeyCode.R)) if (Input.GetKey(KeyCode.R))
{ {
Respawn(); flag5 = true;
} }
} }
if (PlayerPrefs.GetInt("Setting2", 0) != 0 || Application.isMobilePlatform) if (PlayerPrefs.GetInt("Setting2", 0) == 1)
{ {
GameObject leftArrow = GameObject.Find("LeftArrow"); GameObject leftArrow = GameObject.Find("LeftArrow");
GameObject rightArrow = GameObject.Find("RightArrow"); GameObject rightArrow = GameObject.Find("RightArrow");
GameObject jumpArrow = GameObject.Find("JumpArrow"); GameObject jumpArrow = GameObject.Find("JumpArrow");
GameObject restartButton = GameObject.Find("RestartButton"); GameObject restartButton = GameObject.Find("RestartButton");
GameObject backButton = GameObject.Find("BackButton"); GameObject backButton = GameObject.Find("BackButton");
if (!Application.isMobilePlatform)
if (Application.isMobilePlatform)
{ {
foreach (Touch touch in Input.touches) if (Input.GetMouseButton(0))
{ {
Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position); Vector3 touchPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
touchPosition.z = 0; touchPosition.z = 0f;
if (leftArrow.GetComponent<SpriteRenderer>().bounds.Contains(touchPosition))
if (touch.phase == TouchPhase.Stationary || touch.phase == TouchPhase.Moved)
{ {
if (leftArrow.GetComponent<SpriteRenderer>().bounds.Contains(touchPosition)) doMoveLeft = true;
{
doMoveLeft = true;
}
else if (rightArrow.GetComponent<SpriteRenderer>().bounds.Contains(touchPosition))
{
doMoveRight = true;
}
else if (jumpArrow.GetComponent<SpriteRenderer>().bounds.Contains(touchPosition))
{
doJump = true;
}
} }
if (rightArrow.GetComponent<SpriteRenderer>().bounds.Contains(touchPosition))
if (touch.phase == TouchPhase.Began)
{ {
if (restartButton.GetComponent<SpriteRenderer>().bounds.Contains(touchPosition)) doMoveRight = true;
{ }
Respawn(); if (jumpArrow.GetComponent<SpriteRenderer>().bounds.Contains(touchPosition))
} {
else if (backButton.GetComponent<SpriteRenderer>().bounds.Contains(touchPosition)) doJump = true;
{ }
Pause(); }
} if (Input.GetMouseButtonDown(0))
{
Vector3 point2 = Camera.main.ScreenToWorldPoint(Input.mousePosition);
point2.z = 0f;
if (restartButton.GetComponent<SpriteRenderer>().bounds.Contains(point2))
{
flag5 = true;
}
if (backButton.GetComponent<SpriteRenderer>().bounds.Contains(point2))
{
flag4 = true;
} }
} }
} }
else else
{ {
if (Input.GetMouseButton(0)) for (int i = 0; i < Input.touchCount; i++)
{ {
Vector3 clickPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); Touch touchPosition = Input.GetTouch(i);
clickPosition.z = 0; Vector3 clickPosition = Camera.main.ScreenToWorldPoint(touchPosition.position);
clickPosition.z = 0f;
if (leftArrow.GetComponent<SpriteRenderer>().bounds.Contains(clickPosition)) if (leftArrow.GetComponent<SpriteRenderer>().bounds.Contains(clickPosition))
{ {
doMoveLeft = true; doMoveLeft = true;
@@ -186,53 +230,53 @@ public class Game : MonoBehaviour
{ {
doJump = true; doJump = true;
} }
}
if (Input.GetMouseButtonDown(0))
{
Vector3 clickPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
clickPosition.z = 0;
if (restartButton.GetComponent<SpriteRenderer>().bounds.Contains(clickPosition)) if (restartButton.GetComponent<SpriteRenderer>().bounds.Contains(clickPosition))
{ {
Respawn(); flag5 = true;
} }
if (backButton.GetComponent<SpriteRenderer>().bounds.Contains(clickPosition)) if (backButton.GetComponent<SpriteRenderer>().bounds.Contains(clickPosition))
{ {
Pause(); flag4 = true;
} }
} }
} }
} }
if (doMoveLeft && !doMoveRight) if (doMoveLeft && !doMoveRight)
{ {
bird.transform.position += new Vector3(-movespeed, 0, 0); bird.transform.position += new Vector3(-movespeed, 0f, 0f);
ClampPosition(screenWidth, bird); ClampPosition(screenWidth, bird);
bird.transform.localScale = new Vector3(1.35f, 1.35f, 1.35f); bird.transform.localScale = new Vector3(1.35f, 1.35f, 1.35f);
doMoveLeft = false;
} }
if (doMoveRight && !doMoveLeft) if (doMoveRight && !doMoveLeft)
{ {
bird.transform.position += new Vector3(movespeed, 0, 0); bird.transform.position += new Vector3(movespeed, 0f, 0f);
ClampPosition(screenWidth, bird); ClampPosition(screenWidth, bird);
bird.transform.localScale = new Vector3(-1.35f, 1.35f, 1.35f); bird.transform.localScale = new Vector3(-1.35f, 1.35f, 1.35f);
} }
if (doJump && isGrounded) if (doJump && isGrounded)
{ {
if (boostLeft > 0) AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Jump"), Camera.main.transform.position, 0.75f * PlayerPrefs.GetFloat("sfxVolume", 1f));
if (boostLeft > 0f)
{ {
rb.linearVelocity = Vector2.up * 12; rb.linearVelocity = Vector2.up * 12f;
} }
else if (slownessLeft > 0) else if (slownessLeft > 0f)
{ {
rb.linearVelocity = Vector2.up * 6; rb.linearVelocity = Vector2.up * 6f;
} }
else else
{ {
rb.linearVelocity = Vector2.up * 9; rb.linearVelocity = Vector2.up * 9f;
} }
} }
if (flag4)
{
TogglePause();
}
if (flag5)
{
Respawn();
}
} }
void ClampPosition(float screenWidth, GameObject bird) void ClampPosition(float screenWidth, GameObject bird)
@@ -244,41 +288,39 @@ public class Game : MonoBehaviour
void FixedUpdate() void FixedUpdate()
{ {
if (pausePanel.activeSelf) return;
MoveBird();
SpawnBerries(); SpawnBerries();
if (!pausePanel.activeSelf)
if (boostLeft > 0)
{ {
boostLeft -= Time.deltaTime; MoveBird();
boostText.text = "Boost expires in " + string.Format("{0:0.0}", boostLeft) + "s"; if (boostLeft > 0f)
} {
else if (slownessLeft > 0) boostLeft -= Time.deltaTime;
{ boostText.GetComponent<TMP_Text>().text = "Boost expires in " + $"{boostLeft:0.0}" + "s";
slownessLeft -= Time.deltaTime; }
boostText.text = "Slowness expires in " + string.Format("{0:0.0}", slownessLeft) + "s"; else if (slownessLeft > 0f)
} {
else slownessLeft -= Time.deltaTime;
{ boostText.GetComponent<TMP_Text>().text = "Slowness expires in " + $"{slownessLeft:0.0}" + "s";
boostText.text = ""; }
} else
{
if (Input.GetKey(KeyCode.Escape) || Input.GetKey(KeyCode.JoystickButton7) || Input.GetKey(KeyCode.Joystick2Button7)) boostText.GetComponent<TMP_Text>().text = "";
{ }
Pause();
} }
} }
void SpawnBerries() void SpawnBerries()
{ {
if (Time.time >= nextSpawnTime) if (!(Time.time >= nextSpawnTime))
{
return;
}
nextSpawnTime = Time.time + 1f / spawnRate;
float spawnProbability = Random.value;
if (!pausePanel.activeSelf)
{ {
nextSpawnTime = Time.time + 1f / spawnRate;
float spawnProbability = Random.value;
GameObject newBerry; GameObject newBerry;
SpriteRenderer spriteRenderer; SpriteRenderer spriteRenderer;
if (spawnProbability <= 0.6f) if (spawnProbability <= 0.6f)
{ {
newBerry = new GameObject("Berry"); newBerry = new GameObject("Berry");
@@ -307,27 +349,30 @@ public class Game : MonoBehaviour
spriteRenderer.sprite = Resources.Load<Sprite>("Berries/UltraBerry"); spriteRenderer.sprite = Resources.Load<Sprite>("Berries/UltraBerry");
newBerry.tag = "UltraBerry"; newBerry.tag = "UltraBerry";
} }
spriteRenderer.sortingOrder = -5; spriteRenderer.sortingOrder = -5;
float screenWidth = Camera.main.orthographicSize * 2 * Camera.main.aspect; float screenWidth = Camera.main.orthographicSize * 2 * Camera.main.aspect;
float spawnPositionX = Random.Range(-screenWidth / 2.17f, screenWidth / 2.17f); float spawnPositionX = Random.Range(-screenWidth / 2.17f, screenWidth / 2.17f);
newBerry.transform.position = new Vector3(spawnPositionX, Camera.main.orthographicSize + 1, 0); newBerry.transform.position = new Vector3(spawnPositionX, Camera.main.orthographicSize + 1f, 0f);
Rigidbody2D rb = newBerry.AddComponent<Rigidbody2D>(); Rigidbody2D rb = newBerry.AddComponent<Rigidbody2D>();
rb.gravityScale = 0; rb.gravityScale = 0f;
rb.linearVelocity = new Vector2(0, -3); rb.linearVelocity = new Vector2(0f, -4f);
} }
} }
void Update() void Update()
{ {
if (pausePanel.activeSelf) return; if (PlayerPrefs.GetInt("Setting4", 0) == 1 && Time.time > nextUpdate)
CheckIfGrounded();
if (screenWidth != Camera.main.orthographicSize * 2 * Camera.main.aspect)
{ {
screenWidth = Camera.main.orthographicSize * 2 * Camera.main.aspect; fps = 1f / Time.deltaTime;
ClampPosition(screenWidth, GameObject.Find("Bird")); //fpsCounter.text = "FPS: " + Mathf.Round(fps);
nextUpdate = Time.time + 0.25f;
}
if (screenWidth != Camera.main.orthographicSize * 2f * Camera.main.aspect)
{
screenWidth = Camera.main.orthographicSize * 2f * Camera.main.aspect;
ClampPosition(screenWidth, bird);
if (PlayerPrefs.GetInt("Setting2", 0) == 1) if (PlayerPrefs.GetInt("Setting2", 0) == 1)
{ {
GameObject leftArrow = GameObject.Find("LeftArrow"); GameObject leftArrow = GameObject.Find("LeftArrow");
@@ -335,28 +380,27 @@ public class Game : MonoBehaviour
GameObject jumpArrow = GameObject.Find("JumpArrow"); GameObject jumpArrow = GameObject.Find("JumpArrow");
GameObject restartButton = GameObject.Find("RestartButton"); GameObject restartButton = GameObject.Find("RestartButton");
GameObject backButton = GameObject.Find("BackButton"); GameObject backButton = GameObject.Find("BackButton");
leftArrow.transform.position = new Vector3(screenWidth / 2.5f, -4f, 0f);
leftArrow.transform.position = new Vector3(-screenWidth / 2.5f, -4f, 0); rightArrow.transform.position = new Vector3(screenWidth / 2.5f, -4f, 0f);
rightArrow.transform.position = new Vector3(screenWidth / 2.5f, -4f, 0); restartButton.transform.position = new Vector3(screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0f);
restartButton.transform.position = new Vector3(screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0); backButton.transform.position = new Vector3(-screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0f);
backButton.transform.position = new Vector3(-screenWidth / 2.3f, Camera.main.orthographicSize - 1.2f, 0);
if (PlayerPrefs.GetInt("Setting3", 0) == 1) if (PlayerPrefs.GetInt("Setting3", 0) == 1)
{ {
leftArrow.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); leftArrow.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
rightArrow.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); rightArrow.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
jumpArrow.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); jumpArrow.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
restartButton.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); restartButton.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
backButton.transform.localScale = new Vector3(screenWidth / 14, screenWidth / 14, 1); backButton.transform.localScale = new Vector3(screenWidth / 14f, screenWidth / 14f, 1f);
jumpArrow.transform.position = new Vector3(screenWidth / 2.5f, -1f, 0); jumpArrow.transform.position = new Vector3(screenWidth / 2.5f, -1f, 0f);
} }
else else
{ {
leftArrow.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); leftArrow.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
rightArrow.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); rightArrow.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
jumpArrow.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); jumpArrow.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
restartButton.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); restartButton.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
backButton.transform.localScale = new Vector3(screenWidth / 20, screenWidth / 20, 1); backButton.transform.localScale = new Vector3(screenWidth / 20f, screenWidth / 20f, 1f);
jumpArrow.transform.position = new Vector3(screenWidth / 2.5f, -2f, 0); jumpArrow.transform.position = new Vector3(screenWidth / 2.5f, -2f, 0f);
} }
} }
} }
@@ -364,88 +408,128 @@ public class Game : MonoBehaviour
GameObject[] poisonberries = GameObject.FindGameObjectsWithTag("PoisonBerry"); GameObject[] poisonberries = GameObject.FindGameObjectsWithTag("PoisonBerry");
GameObject[] ultraberries = GameObject.FindGameObjectsWithTag("UltraBerry"); GameObject[] ultraberries = GameObject.FindGameObjectsWithTag("UltraBerry");
GameObject[] slownessberries = GameObject.FindGameObjectsWithTag("SlowBerry"); GameObject[] slownessberries = GameObject.FindGameObjectsWithTag("SlowBerry");
if (!pausePanel.activeSelf)
foreach (GameObject berry in berries)
{ {
if (berry.transform.position.y < -Camera.main.orthographicSize - 1) CheckIfGrounded();
GameObject[] array5 = berries;
foreach (GameObject berry in array5)
{ {
Destroy(berry); if (berry.transform.position.y < 0f - Camera.main.orthographicSize - 1f)
}
else if (Vector3.Distance(bird.transform.position, berry.transform.position) < 1.5f) {
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Eat"), Camera.main.transform.position);
Destroy(berry);
score++;
UpdateScore(score);
}
}
foreach (GameObject poisonberry in poisonberries)
{
if (poisonberry.transform.position.y < -Camera.main.orthographicSize - 1)
{
Destroy(poisonberry);
}
else if (Vector3.Distance(bird.transform.position, poisonberry.transform.position) < 1.5f) {
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Death"), Camera.main.transform.position);
Respawn();
}
}
foreach (GameObject ultraberry in ultraberries)
{
if (ultraberry.transform.position.y < -Camera.main.orthographicSize - 1)
{
Destroy(ultraberry);
}
else if (Vector3.Distance(bird.transform.position, ultraberry.transform.position) < 1.5f) {
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Powerup"), Camera.main.transform.position, 0.5f);
Destroy(ultraberry);
if (slownessLeft > 0)
{ {
slownessLeft = 0; Destroy(berry);
score += 1; }
else if (Vector3.Distance(bird.transform.position, berry.transform.position) < 1.5f)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Eat"), Camera.main.transform.position, 1.2f * PlayerPrefs.GetFloat("sfxVolume", 1f));
Destroy(berry);
score++;
UpdateScore(score); UpdateScore(score);
} }
else berry.GetComponent<Rigidbody2D>().linearVelocity = new Vector2(0f, -4f);
}
array5 = poisonberries;
foreach (GameObject gameObject7 in array5)
{
if (gameObject7.transform.position.y < 0f - Camera.main.orthographicSize - 1f)
{ {
boostLeft += 10f; Destroy(gameObject7);
score += 5;
UpdateScore(score);
} }
else if (Vector3.Distance(bird.transform.position, gameObject7.transform.position) < 1.5f)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Death"), Camera.main.transform.position, 1.2f * PlayerPrefs.GetFloat("sfxVolume", 1f));
Respawn();
}
gameObject7.GetComponent<Rigidbody2D>().linearVelocity = new Vector2(0f, -4f);
}
array5 = ultraberries;
foreach (GameObject gameObject8 in array5)
{
if (gameObject8.transform.position.y < 0f - Camera.main.orthographicSize - 1f)
{
Destroy(gameObject8);
}
else if (Vector3.Distance(bird.transform.position, gameObject8.transform.position) < 1.5f)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Powerup"), Camera.main.transform.position, 0.35f * PlayerPrefs.GetFloat("sfxVolume", 1f));
Destroy(gameObject8);
if (slownessLeft > 0f)
{
slownessLeft = 0f;
score++;
UpdateScore(score);
}
else
{
boostLeft += 10f;
score += 5;
UpdateScore(score);
}
}
gameObject8.GetComponent<Rigidbody2D>().linearVelocity = new Vector2(0f, -4f);
}
array5 = slownessberries;
foreach (GameObject gameObject9 in array5)
{
if (gameObject9.transform.position.y < 0f - Camera.main.orthographicSize - 1f)
{
Destroy(gameObject9);
}
else if (Vector3.Distance(bird.transform.position, gameObject9.transform.position) < 1.5f)
{
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Downgrade"), Camera.main.transform.position, 0.35f * PlayerPrefs.GetFloat("sfxVolume", 1f));
Destroy(gameObject9);
boostLeft = 0f;
slownessLeft = 10f;
if (score > 0)
{
score--;
UpdateScore(score);
}
}
gameObject9.GetComponent<Rigidbody2D>().linearVelocity = new Vector2(0f, -4f);
} }
} }
else
foreach (GameObject slownessberry in slownessberries)
{ {
if (slownessberry.transform.position.y < -Camera.main.orthographicSize - 1) rb.gravityScale = 0f;
rb.linearVelocity = Vector2.zero;
GameObject[] array5 = berries;
for (int i = 0; i < array5.Length; i++)
{ {
Destroy(slownessberry); array5[i].GetComponent<Rigidbody2D>().linearVelocity = Vector2.zero;
} }
else if (Vector3.Distance(bird.transform.position, slownessberry.transform.position) < 1.5f) { array5 = poisonberries;
AudioSource.PlayClipAtPoint(Resources.Load<AudioClip>("Sounds/Slowness"), Camera.main.transform.position, 0.5f); for (int i = 0; i < array5.Length; i++)
Destroy(slownessberry); {
boostLeft = 0f; array5[i].GetComponent<Rigidbody2D>().linearVelocity = Vector2.zero;
slownessLeft = 10f;
if (score > 0)
{
score -= 1;
UpdateScore(score);
}
} }
array5 = ultraberries;
for (int i = 0; i < array5.Length; i++)
{
array5[i].GetComponent<Rigidbody2D>().linearVelocity = Vector2.zero;
}
array5 = slownessberries;
for (int i = 0; i < array5.Length; i++)
{
array5[i].GetComponent<Rigidbody2D>().linearVelocity = Vector2.zero;
}
}
if (!Application.isMobilePlatform && (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.JoystickButton7)))
{
TogglePause();
} }
} }
void Respawn() void Respawn()
{ {
bird.transform.position = new Vector3(0, groundYPosition, 0); bird.transform.position = new Vector3(0f, -4.3f, 0f);
bird.transform.localScale = new Vector3(1.35f, 1.35f, 1.35f); bird.transform.localScale = new Vector3(1.35f, 1.35f, 1.35f);
rb.gravityScale = 0; rb.gravityScale = 0f;
rb.linearVelocity = Vector2.zero; rb.linearVelocity = Vector2.zero;
score = 0; score = 0;
boostLeft = 0; boostLeft = 0f;
slownessLeft = 0; slownessLeft = 0f;
UpdateScore(score); UpdateScore(score);
GameObject[] berries = GameObject.FindGameObjectsWithTag("Berry"); GameObject[] berries = GameObject.FindGameObjectsWithTag("Berry");
GameObject[] poisonberries = GameObject.FindGameObjectsWithTag("PoisonBerry"); GameObject[] poisonberries = GameObject.FindGameObjectsWithTag("PoisonBerry");
GameObject[] ultraberries = GameObject.FindGameObjectsWithTag("UltraBerry"); GameObject[] ultraberries = GameObject.FindGameObjectsWithTag("UltraBerry");
@@ -481,63 +565,60 @@ public class Game : MonoBehaviour
highScoreText.text = "High Score: " + highscore; highScoreText.text = "High Score: " + highscore;
} }
private void CheckIfGrounded() void CheckIfGrounded()
{ {
GameObject jumpArrow = GameObject.Find("JumpArrow"); GameObject jumpArrow = GameObject.Find("JumpArrow");
isGrounded = bird.transform.position.y <= groundYPosition + 0.05f; isGrounded = bird.transform.position.y <= -4.1299996f;
rb.gravityScale = isGrounded ? 0 : 1.5f; rb.gravityScale = (isGrounded ? 0f : 1.5f);
if (bird.transform.position.y < groundYPosition) if (bird.transform.position.y < -4.18f)
{ {
bird.transform.position = new Vector2(bird.transform.position.x, groundYPosition); bird.transform.position = new Vector2(bird.transform.position.x, -4.18f);
rb.linearVelocity = new Vector2(rb.linearVelocity.x, 0); rb.linearVelocity = new Vector2(rb.linearVelocity.x, 0f);
} }
if (jumpArrow != null && jumpArrow.GetComponent<Renderer>() != null)
if (jumpArrow != null)
{ {
Renderer jumpArrowRenderer = jumpArrow.GetComponent<Renderer>(); jumpArrow.GetComponent<Renderer>().material.color = (isGrounded ? Color.white : Color.red);
if (jumpArrowRenderer != null)
{
jumpArrowRenderer.material.color = isGrounded ? Color.white : Color.red;
}
} }
} }
void TogglePause()
{
if (pausePanel.activeSelf)
{
DisablePause();
}
else
{
EnablePause();
}
}
void EnablePause()
{
Cursor.visible = true;
Cursor.lockState = CursorLockMode.None;
backgroundMusic.Pause();
pausePanel.SetActive(value: true);
}
void DisablePause()
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
backgroundMusic.Play();
pausePanel.SetActive(value: false);
}
void OnApplicationPause()
{
EnablePause();
}
void OnApplicationQuit() void OnApplicationQuit()
{ {
PlayerPrefs.SetInt("HighScore", highscore); Cursor.visible = true;
PlayerPrefs.Save(); Cursor.lockState = CursorLockMode.None;
} }
}
void Pause()
{
songLoop.Pause();
pausePanel.SetActive(true);
GameObject[] berries = GameObject.FindGameObjectsWithTag("Berry");
GameObject[] poisonberries = GameObject.FindGameObjectsWithTag("PoisonBerry");
GameObject[] ultraberries = GameObject.FindGameObjectsWithTag("UltraBerry");
GameObject[] slownessberries = GameObject.FindGameObjectsWithTag("SlowBerry");
rb.gravityScale = 0f;
rb.linearVelocity = Vector2.zero;
foreach (GameObject b in berries)
{
b.GetComponent<Rigidbody2D>().linearVelocity = Vector2.zero;
}
foreach (GameObject pb in poisonberries)
{
pb.GetComponent<Rigidbody2D>().linearVelocity = Vector2.zero;
}
foreach (GameObject ub in ultraberries)
{
ub.GetComponent<Rigidbody2D>().linearVelocity = Vector2.zero;
}
foreach (GameObject sb in slownessberries)
{
sb.GetComponent<Rigidbody2D>().linearVelocity = Vector2.zero;
}
}
}

View File

@@ -141,7 +141,8 @@ PlayerSettings:
visionOSBundleVersion: 1.0 visionOSBundleVersion: 1.0
tvOSBundleVersion: 1.0 tvOSBundleVersion: 1.0
bundleVersion: 1.34 bundleVersion: 1.34
preloadedAssets: [] preloadedAssets:
- {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
metroInputSource: 0 metroInputSource: 0
wsaTransparentSwapchain: 0 wsaTransparentSwapchain: 0
m_HolographicPauseOnTrackingLoss: 1 m_HolographicPauseOnTrackingLoss: 1