Show XP in game player scene

This commit is contained in:
2026-02-08 00:29:05 -07:00
parent 1af7ab64c5
commit 18139ea606
2 changed files with 219 additions and 16 deletions

View File

@@ -654,6 +654,190 @@ MonoBehaviour:
invert: 0 invert: 0
addMore: {r: 0, g: 0, b: 0, a: 0} addMore: {r: 0, g: 0, b: 0, a: 0}
reverseAdd: 0 reverseAdd: 0
--- !u!1 &116559983
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 116559984}
- component: {fileID: 116559988}
- component: {fileID: 116559987}
- component: {fileID: 116559986}
- component: {fileID: 116559989}
- component: {fileID: 116559985}
m_Layer: 5
m_Name: LevelText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &116559984
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 116559983}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1811565639}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -260, y: 85}
m_SizeDelta: {x: 500, y: 150}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &116559985
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 116559983}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 73b30df2b3a7144b99b75ce70168fd50, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::CustomColorObject
type: 4
invert: 0
addMore: {r: 0, g: 0, b: 0, a: 0}
reverseAdd: 0
--- !u!114 &116559986
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 116559983}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8e4353c3e16b539839e7f8d301ca5e38, type: 3}
m_Name:
m_EditorClassIdentifier:
uiName: LevelText
canDrag: 0
--- !u!114 &116559987
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 116559983}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Level: 0
XP: 0/0 (0%)'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4fd546dd0900395408d2de20f5025882, type: 2}
m_sharedMaterial: {fileID: -1476194838487357290, guid: 4fd546dd0900395408d2de20f5025882, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 1
m_fontSizeMax: 36
m_fontStyle: 0
m_HorizontalAlignment: 4
m_VerticalAlignment: 1024
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &116559988
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 116559983}
m_CullTransparentMesh: 1
--- !u!114 &116559989
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 116559983}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9213dca44899f70ffb449db66c6d1764, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::IgnoreRaycast
--- !u!1 &129477182 --- !u!1 &129477182
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -844,8 +1028,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 141.875, y: -17.505} m_AnchoredPosition: {x: 141.88, y: -17.505}
m_SizeDelta: {x: 199.75, y: 35.01} m_SizeDelta: {x: 199.76, y: 35.01}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &145624682 --- !u!114 &145624682
MonoBehaviour: MonoBehaviour:
@@ -2014,8 +2198,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 84.7, y: -17.505} m_AnchoredPosition: {x: 84.705, y: -17.505}
m_SizeDelta: {x: 85.4, y: 35.01} m_SizeDelta: {x: 85.41, y: 35.01}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &431733395 --- !u!114 &431733395
MonoBehaviour: MonoBehaviour:
@@ -3222,6 +3406,7 @@ MonoBehaviour:
backgroundMusic: {fileID: 1625416039} backgroundMusic: {fileID: 1625416039}
overlayRender: {fileID: 450099081} overlayRender: {fileID: 450099081}
berryParent: {fileID: 157908646} berryParent: {fileID: 157908646}
levelText: {fileID: 116559987}
mobileButtons: {fileID: 872476494} mobileButtons: {fileID: 872476494}
pauseButton: {fileID: 1577031227} pauseButton: {fileID: 1577031227}
restartButton: {fileID: 34767206} restartButton: {fileID: 34767206}
@@ -5093,8 +5278,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 268.63, y: -50} m_AnchoredPosition: {x: 268.625, y: -50}
m_SizeDelta: {x: 127.399994, y: 35.01} m_SizeDelta: {x: 127.41, y: 35.01}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1050845825 --- !u!114 &1050845825
MonoBehaviour: MonoBehaviour:
@@ -5863,7 +6048,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 100.42501, y: -50} m_AnchoredPosition: {x: 100.415, y: -50}
m_SizeDelta: {x: 179.01, y: 35.01} m_SizeDelta: {x: 179.01, y: 35.01}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1203494972 --- !u!114 &1203494972
@@ -6310,6 +6495,7 @@ GameObject:
- component: {fileID: 1527994351} - component: {fileID: 1527994351}
- component: {fileID: 1527994350} - component: {fileID: 1527994350}
- component: {fileID: 1527994352} - component: {fileID: 1527994352}
- component: {fileID: 1527994354}
- component: {fileID: 1527994353} - component: {fileID: 1527994353}
m_Layer: 5 m_Layer: 5
m_Name: CoinsText m_Name: CoinsText
@@ -6467,6 +6653,18 @@ MonoBehaviour:
invert: 0 invert: 0
addMore: {r: 0, g: 0, b: 0, a: 0} addMore: {r: 0, g: 0, b: 0, a: 0}
reverseAdd: 0 reverseAdd: 0
--- !u!114 &1527994354
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1527994348}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9213dca44899f70ffb449db66c6d1764, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::IgnoreRaycast
--- !u!1 &1536856147 --- !u!1 &1536856147
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -7402,8 +7600,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 468.20502, y: -50} m_AnchoredPosition: {x: 468.21002, y: -50}
m_SizeDelta: {x: 241.75, y: 35.01} m_SizeDelta: {x: 241.76, y: 35.01}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1629369750 --- !u!114 &1629369750
MonoBehaviour: MonoBehaviour:
@@ -7622,9 +7820,9 @@ RectTransform:
- {fileID: 1960803694} - {fileID: 1960803694}
m_Father: {fileID: 302151017} m_Father: {fileID: 302151017}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0} m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -97.5, y: 47.5} m_AnchoredPosition: {x: -97.5, y: -47.5}
m_SizeDelta: {x: 175, y: 75} m_SizeDelta: {x: 175, y: 75}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1639562821 --- !u!114 &1639562821
@@ -7917,6 +8115,7 @@ RectTransform:
- {fileID: 1606868531} - {fileID: 1606868531}
- {fileID: 497996346} - {fileID: 497996346}
- {fileID: 1527994349} - {fileID: 1527994349}
- {fileID: 116559984}
- {fileID: 449518475} - {fileID: 449518475}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@@ -1,4 +1,5 @@
using System.Linq; using System;
using System.Linq;
using System.Numerics; using System.Numerics;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
@@ -40,6 +41,7 @@ public class GamePlayer : MonoBehaviour
[SerializeField] private SpriteRenderer overlayRender; [SerializeField] private SpriteRenderer overlayRender;
private float lastMoveTime; private float lastMoveTime;
[SerializeField] private GameObject berryParent; [SerializeField] private GameObject berryParent;
[SerializeField] private TMP_Text levelText;
[SerializeField] private GameObject mobileButtons; [SerializeField] private GameObject mobileButtons;
[SerializeField] private Button pauseButton; [SerializeField] private Button pauseButton;
@@ -324,7 +326,7 @@ public class GamePlayer : MonoBehaviour
{ {
nextSpawnTime = Time.time + 1f / spawnRate; nextSpawnTime = Time.time + 1f / spawnRate;
} }
float spawnProbability = Random.value; float spawnProbability = UnityEngine.Random.value;
if (!pausePanel.activeSelf) if (!pausePanel.activeSelf)
{ {
GameObject newBerry = new("Berry"); GameObject newBerry = new("Berry");
@@ -375,7 +377,7 @@ public class GamePlayer : MonoBehaviour
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 = UnityEngine.Random.Range(-screenWidth / 2.17f, screenWidth / 2.17f);
newBerry.transform.position = new UnityEngine.Vector3(spawnPositionX, Camera.main.orthographicSize + 1f, 0f); newBerry.transform.position = new UnityEngine.Vector3(spawnPositionX, Camera.main.orthographicSize + 1f, 0f);
Rigidbody2D rb = newBerry.AddComponent<Rigidbody2D>(); Rigidbody2D rb = newBerry.AddComponent<Rigidbody2D>();
@@ -561,7 +563,7 @@ public class GamePlayer : MonoBehaviour
() => DoSpeedyBerry(randomBerry), () => DoSpeedyBerry(randomBerry),
() => DoAntiBerry(randomBerry) () => DoAntiBerry(randomBerry)
}; };
funcs[Random.Range(0, funcs.Length)](); funcs[UnityEngine.Random.Range(0, funcs.Length)]();
} }
if (speedyLeft > 0) if (speedyLeft > 0)
{ {
@@ -674,6 +676,8 @@ public class GamePlayer : MonoBehaviour
if (Application.isMobilePlatform) restartButton.interactable = score != 0; if (Application.isMobilePlatform) restartButton.interactable = score != 0;
if (DiscordRPCHandler.Instance != null) if (DiscordRPCHandler.Instance != null)
DiscordRPCHandler.Instance.UpdateRPC("Playing in normal mode", $"Score: {Tools.FormatWithCommas(score)} | High Score: {Tools.FormatWithCommas(highscore)}"); DiscordRPCHandler.Instance.UpdateRPC("Playing in normal mode", $"Score: {Tools.FormatWithCommas(score)} | High Score: {Tools.FormatWithCommas(highscore)}");
var (_, level, currentXpInLevel, totalXpForLevel, percentDone) = Tools.GetLevelInfo();
levelText.text = $"Level: {level}\nXP: {currentXpInLevel}/{totalXpForLevel} ({Math.Floor(percentDone)}%)";
} }
void CheckIfGrounded() void CheckIfGrounded()