Просмотр исходного кода

转换文件编码为UTF-8解决乱码问题

HerobrineXia 4 лет назад
Родитель
Сommit
afb84875e8

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/SOURCEHANSANSCN-NORMAL SDF.asset


+ 20 - 14
Assets/Resources/Dice/DiceEntity.cs

@@ -4,12 +4,14 @@ using UnityEngine;
 using DG.Tweening;
 using System.Linq;
 
-public class DiceEntity : MonoBehaviour {
+public class DiceEntity : MonoBehaviour
+{
 
     public InputM.KeyType key;
     private string currentLetter;
     private SpriteRenderer spriteText;
-    private void Start() {
+    private void Start()
+    {
         spriteText = GetComponentsInChildren<SpriteRenderer>().Where(sp => sp.gameObject.name == "ImgText").First();
         GetComponentsInChildren<SpriteRenderer>().Where(sp => sp.gameObject.name == "ImgType").First().sprite = InputM.GetKeyTypeSprite(key);
         currentLetter = InputM.GetKeyRaw(key);
@@ -19,49 +21,53 @@ public class DiceEntity : MonoBehaviour {
 
     const float rollTime = 3.5f, endTime = 1.5f;
     public bool canRestore = true;
-    private void OnCollisionEnter2D(Collision2D collision) {
+    private void OnCollisionEnter2D(Collision2D collision)
+    {
         if (!collision.gameObject.CompareTag("Player")) return;
         AudioM.Play("DicePickup1");
-        // 关闭其他移动
+        // 鍏抽棴鍏朵粬绉诲姩
         GetComponent<Collider2D>().enabled = false;
         GetComponent<Rigidbody2D>().gravityScale = 0;
         GetComponent<Rigidbody2D>().velocity = Vector2.zero;
-        // 开始旋转
+        // 寮€濮嬫棆杞�
         transform.DORotate(new Vector3(0, 0, 360f * Mathf.RoundToInt(rollTime * 1.5f)), rollTime, RotateMode.FastBeyond360);
         transform.DOScale(2, rollTime);
         transform.DOMoveY(transform.position.y + 3, rollTime);
         StartCoroutine(Roll());
     }
-    IEnumerator Roll() {
-        for (int i = 0; i < rollTime * 8; i++) {
+    IEnumerator Roll()
+    {
+        for (int i = 0; i < rollTime * 8; i++)
+        {
             currentLetter = Modules.RandomOne("wasdlr".ToList()).ToString();
             UpdateSpriteText();
             yield return new WaitForSeconds(0.1f);
         }
-        for (int i = 0; i < Mathf.RoundToInt(rollTime * 0.333f); i++) {
+        for (int i = 0; i < Mathf.RoundToInt(rollTime * 0.333f); i++)
+        {
             currentLetter = Modules.RandomOne("wasdlr".ToList()).ToString();
             UpdateSpriteText();
             yield return new WaitForSeconds(0.333f);
         }
-        // 最终确定
+        // 鏈€缁堢‘瀹�
         string possible = InputM.GetPossibleResults(key, canRestore);
         Debug.Log(possible);
         currentLetter = Modules.RandomOne(possible.ToCharArray().ToList()).ToString();
         UpdateSpriteText();
         yield return new WaitForSeconds(0.5f);
-        // 强调动画
+        // 寮鸿皟鍔ㄧ敾
         AudioM.Play("DicePickup2");
         transform.DOScale(2.5f, 0.1f);
         yield return new WaitForSeconds(0.1f);
         transform.DOScale(2.3f, 0.1f);
         yield return new WaitForSeconds(0.7f);
-        // 结束动画
+        // 缁撴潫鍔ㄧ敾
         transform.DOScale(1, endTime);
         GameObject endObj = InputM.GetDiceUI(key);
         Vector2 screenPos = RectTransformUtility.WorldToScreenPoint(Camera.allCameras[0], endObj.transform.position);
-        transform.DOMove((Vector2) Camera.allCameras[0].ScreenToWorldPoint(screenPos), endTime);
+        transform.DOMove((Vector2)Camera.allCameras[0].ScreenToWorldPoint(screenPos), endTime);
         yield return new WaitForSeconds(endTime);
-        // 设置
+        // 璁剧疆
         InputM.SetKey(key, currentLetter);
         endObj.GetComponent<DiceUI>().isDropped = false;
         endObj.GetComponent<DiceUI>().UpdateColor();
@@ -70,4 +76,4 @@ public class DiceEntity : MonoBehaviour {
     }
 
 
-}
+}

+ 1 - 1
Assets/Resources/Dice/DiceUI.cs

@@ -39,7 +39,7 @@ public class DiceUI : MonoBehaviour {
     void Update() {
         if (!Input.GetMouseButtonUp(0) || !(allowPress || Input.GetKey(KeyCode.LeftControl)) || 
             !RectTransformUtility.RectangleContainsScreenPoint(rectTransform, Input.mousePosition, Camera.allCameras[0])) return;
-        // µã»÷
+        // 点击
         DropDice();
     }
 

+ 3 - 3
Assets/Resources/Entities/EnemyBase.cs

@@ -12,15 +12,15 @@ public abstract class EnemyBase : EntityBase {
 
     public int hp; internal int currentHp = -1;
     internal override void OnHitBullet() {
-        // 受伤动画
+        // 鍙椾激鍔ㄧ敾
         sprite.DOColor(new Color(1f, 0.5f, 0.5f), 0.04f).SetLoops(2, LoopType.Yoyo);
-        // 死亡判断
+        // 姝讳骸鍒ゆ柇
         if (currentHp == -1) currentHp = hp;
         currentHp--;
         if (currentHp < 0) {
             AudioM.Play("enemy_die");
             transform.localScale = Vector3.zero;
-            Destroy(gameObject, 1); // 防止动画没播放完导致报错
+            Destroy(gameObject, 1); // 闃叉�鍔ㄧ敾娌℃挱鏀惧畬瀵艰嚧鎶ラ敊
         }
     }
 

+ 12 - 12
Assets/Resources/Entities/EntityBase.cs

@@ -22,20 +22,20 @@ public abstract class EntityBase : MonoBehaviour {
     internal bool towardsRight = true, isLand = false;
     void Update() {
         OnUpdate();
-        // 获取当前情况
+        // 鑾峰彇褰撳墠鎯呭喌
         float speedX = rb.velocity.x, speedY = rb.velocity.y;
         bool isCrouch = isPressingCrouch();
         isLand = Physics2D.OverlapCircle(transform.position + Vector3.left * 0.1f, jumpThreshold, LayerMask.GetMask("Tilemap")) || 
             Physics2D.OverlapCircle(transform.position + Vector3.left * -0.1f, jumpThreshold, LayerMask.GetMask("Tilemap"));
-        float moveHorizontal = (isCrouch && isLand ? 0.35f : 1) * // 下蹲减速
-            (isPressingLeft() == isPressingRight() ? 0 : // 没有同时按住左右
-            (isPressingLeft() ? -1 : 1)); // 获取方向
-        // 判断跳跃
+        float moveHorizontal = (isCrouch && isLand ? 0.35f : 1) * // 涓嬭共鍑忛€�
+            (isPressingLeft() == isPressingRight() ? 0 : // 娌℃湁鍚屾椂鎸変綇宸﹀彸
+            (isPressingLeft() ? -1 : 1)); // 鑾峰彇鏂瑰悜
+        // 鍒ゆ柇璺宠穬
         jumpBuffer -= Time.deltaTime; jumpWolf -= Time.deltaTime; jumping -= Time.deltaTime;
         if (isPressDownJump()) jumpBuffer = jumpBufferTime;
         if (isLand) jumpWolf = jumpWolfTime;
         if (jumpBuffer > 0 && jumpWolf > 0 && jumping < 0) {
-            // 播放音效
+            // 鎾�斁闊虫晥
             AudioM.Play("jump");
 
             speedY = jumpForce;
@@ -44,14 +44,14 @@ public abstract class EntityBase : MonoBehaviour {
         } else if (isCrouch) {
             speedY -= downA;
         }
-        // 加速下落
+        // 鍔犻€熶笅钀�
         if (speedY < 0) speedY -= fallA;
-        // 横向移动
+        // 妯�悜绉诲姩
         if (moveHorizontal != 0) {
             speedX = speedX * (1 - horizontalA) + movementSpeed * horizontalA * moveHorizontal;
         }
         speedX *= horizontalF;
-        // 蹲下
+        // 韫蹭笅
         if (canCrouch) {
             if (isCrouch) {
                 sprite.sprite = spriteDown;
@@ -63,11 +63,11 @@ public abstract class EntityBase : MonoBehaviour {
                 coll.offset = new Vector2(0, 0.7f);
             }
         }
-        // 设置
+        // 璁剧疆
         rb.velocity = new Vector2(speedX, speedY);
         rb.mass = baseMass * (towardsRight ? 1.2f : 0.8f);
         if (towardsRight != (Mathf.Abs(speedX) > filpSpeed ? speedX > 0 : towardsRight)) {
-            // 反向
+            // 鍙嶅悜
             towardsRight = !towardsRight;
             transform.DOScaleX(towardsRight ? 1 : -1, 0.1f);
         }
@@ -78,7 +78,7 @@ public abstract class EntityBase : MonoBehaviour {
     internal abstract bool isPressingCrouch();
     internal virtual void OnUpdate() {}
 
-    // 碰撞检测
+    // 纰版挒妫€娴�
     private void OnCollisionEnter2D(Collision2D collision) {
         if (collision.gameObject.CompareTag("Border")) OnHitBorder();
         if (collision.gameObject.CompareTag("Bullet")) OnHitBullet();

+ 47 - 34
Assets/Resources/Entities/Player.cs

@@ -5,19 +5,22 @@ using System.Collections.Generic;
 using System.Linq;
 using UnityEngine;
 
-public class Player : EntityBase {
+public class Player : EntityBase
+{
 
     internal override bool isPressingCrouch() => InputM.GetKeyEvent(InputM.KeyType.Crouch);
     internal override bool isPressDownJump() => InputM.GetKeyEvent(InputM.KeyType.Jump);
     internal override bool isPressingLeft() => InputM.GetKeyEvent(InputM.KeyType.Left);
     internal override bool isPressingRight() => InputM.GetKeyEvent(InputM.KeyType.Right);
 
-    // ����
+    // 生命
     public RectTransform[] hearts;
     private int _hp = 3;
-    private int hp {
+    private int hp
+    {
         get { return _hp; }
-        set {
+        set
+        {
             if (_hp == value) return;
             _hp = value;
             if (_hp == 0) _hp = 3;
@@ -25,16 +28,19 @@ public class Player : EntityBase {
         }
     }
     public float knockbackForceH = 30f, knockbackForceV = 15f;
-    internal override void OnHitBorder() {
+    internal override void OnHitBorder()
+    {
         Hurt();
         transform.position = new Vector3(0, 8, 0);
     }
-    internal override void OnHitEnemy(Collision2D collision) {
+    internal override void OnHitEnemy(Collision2D collision)
+    {
         Hurt();
         int face = collision.transform.position.x < transform.position.x ? 1 : -1;
         rb.velocity = new Vector2(face * knockbackForceH, knockbackForceV);
     }
-    public void Hurt() {
+    public void Hurt()
+    {
         hp--;
         AudioM.Play("hurt");
         rb.velocity = Vector2.zero;
@@ -42,46 +48,58 @@ public class Player : EntityBase {
         Camera.current.DOShakePosition(0.3f, 0.3f, 20).SetId("ScreenShake");
     }
 
-    // ����
+    // 治疗
     public float healTime = 4f; private float currentHealTime = 0f;
-    private void RefreshHearts() {
+    private void RefreshHearts()
+    {
         float totalHp = Mathf.Clamp(hp + Mathf.Pow(currentHealTime / healTime, 7f) * 0.7f + currentHealTime / healTime * 0.3f, 0, 3);
-        for (int i = 0; i < 3; i++) {
+        for (int i = 0; i < 3; i++)
+        {
             hearts[i].localScale = Vector3.one * Mathf.Clamp(totalHp - i, 0, 1);
         }
     }
 
-    // ���
+    // 射击
     public int maxBullet = 20, currentBullet = 20;
     public float shootDelay = 0.15f; private float currentShootDelay = 0f;
     public float reloadDelay = 1.5f; private float currentReloadDelay = 0f;
     public float bulletSpeed = 50f, bulletKnockback = 1f;
     public GameObject bullet; public TMPro.TextMeshProUGUI textBullet;
-    internal override void OnUpdate() {
-        // ����
-        if (isPressingCrouch() && hp < 3 && isLand) {
+    internal override void OnUpdate()
+    {
+        // 治疗
+        if (isPressingCrouch() && hp < 3 && isLand)
+        {
             currentHealTime += Time.deltaTime;
-            if (currentHealTime > healTime) {
+            if (currentHealTime > healTime)
+            {
                 currentHealTime -= healTime;
                 hp++;
             }
             RefreshHearts();
-        } else if (currentHealTime != 0f) {
+        }
+        else if (currentHealTime != 0f)
+        {
             currentHealTime = 0f;
             RefreshHearts();
         }
-        // װ��
-        if (InputM.GetKeyEvent(InputM.KeyType.Reload) && currentBullet < maxBullet && currentReloadDelay <= 0f) {
+        // 装填
+        if (InputM.GetKeyEvent(InputM.KeyType.Reload) && currentBullet < maxBullet && currentReloadDelay <= 0f)
+        {
             AudioM.Play("reload");
             currentReloadDelay = reloadDelay;
-        } else if (currentReloadDelay > 0 && currentReloadDelay < Time.deltaTime) {
+        }
+        else if (currentReloadDelay > 0 && currentReloadDelay < Time.deltaTime)
+        {
             currentReloadDelay = 0f; currentBullet = maxBullet;
-        } else if (currentReloadDelay > 0) {
+        }
+        else if (currentReloadDelay > 0)
+        {
             currentReloadDelay -= Time.deltaTime;
         }
-        // ����
-        bool autoReload = false;
-        if (InputM.GetKeyEvent(InputM.KeyType.Fire) && currentBullet > 0 && currentShootDelay <= 0f && currentReloadDelay <= 0f) {
+        // 开火
+        if (InputM.GetKeyEvent(InputM.KeyType.Fire) && currentBullet > 0 && currentShootDelay <= 0f && currentReloadDelay <= 0f)
+        {
             AudioM.Play("fire");
             currentBullet--; currentShootDelay = shootDelay;
             Vector2 fromPos = transform.position + Vector3.up * 0.55f;
@@ -90,23 +108,18 @@ public class Player : EntityBase {
             GameObject newBullet = Instantiate(bullet, fromPos, Quaternion.identity);
             newBullet.GetComponent<Rigidbody2D>().velocity = bulletSpeed * shootVector;
             newBullet.transform.eulerAngles = (shootVector.x > 0 ? -1 : 1) * Vector2.Angle(shootVector, Vector2.up) * Vector3.forward;
-            // ������
+            // 后座力
             rb.velocity += bulletKnockback * -shootVector;
-        } else if (currentShootDelay > 0) {
-            currentShootDelay -= Time.deltaTime;
-        }else if (autoReload && InputM.GetKeyEvent(InputM.KeyType.Fire) && currentBullet == 0 && currentShootDelay <= 0f && currentReloadDelay <= 0f)
-        {
-            AudioM.Play("reload");
-            currentReloadDelay = reloadDelay;
         }
+        else if (currentShootDelay > 0)
         {
-
+            currentShootDelay -= Time.deltaTime;
         }
-        // ���� UI
+        // 更新 UI
         textBullet.text = currentReloadDelay > 0f ?
-            "".PadLeft(maxBullet - Mathf.RoundToInt(currentReloadDelay / reloadDelay * maxBullet), "|".ToCharArray().First()) : 
+            "".PadLeft(maxBullet - Mathf.RoundToInt(currentReloadDelay / reloadDelay * maxBullet), "|".ToCharArray().First()) :
             "".PadLeft(currentBullet, "|".ToCharArray().First());
         textBullet.color = currentReloadDelay > 0f ? new Color(0.6f, 0.6f, 0.6f) : new Color(0.6588235f, 1f, 0.6941177f);
     }
 
-}
+}

+ 53 - 33
Assets/Resources/System/StoryM.cs

@@ -6,100 +6,120 @@ using UnityEngine.Localization.Settings;
 using UnityEngine.UI;
 using System.Linq;
 
-public class StoryM : MonoBehaviour {
+public class StoryM : MonoBehaviour
+{
 
-    // 文本
+    // 鏂囨湰
     public TMPro.TextMeshProUGUI textStory;
     public RectTransform shapeBack;
     /// <summary>
-    /// 设置旁白,并返回预期时间。旁白字幕将在预期时间后消失。
+    /// 璁剧疆鏃佺櫧锛屽苟杩斿洖棰勬湡鏃堕棿銆傛梺鐧藉瓧骞曞皢鍦ㄩ�鏈熸椂闂村悗娑堝け銆�
     /// </summary>
-    public float SetStoryText(string textCn, string textEn = "English") {
+    public float SetStoryText(string textCn, string textEn = "English")
+    {
         bool isCn = LocalizationSettings.SelectedLocale.LocaleName == "Chinese (Simplified) (zh-CN)";
         textStory.text = isCn ? textCn : textEn;
         LayoutRebuilder.ForceRebuildLayoutImmediate(textStory.rectTransform);
-        // 动画
+        // 鍔ㄧ敾
         textStory.color = Color.black;
         DOTween.Kill("StoryFont"); textStory.DOColor(Color.white, 0.25f).SetId("StoryFont");
         DOTween.Kill("StoryBackground"); shapeBack.DOScaleX((textStory.rectTransform.rect.width + 40f) / 100f, 0.15f).SetId("StoryBackground");
-        // 消失
+        // 娑堝け
         float time = 1.5f + (isCn ? textCn.Length / 1.5f : textEn.Split(" ").Length / 2f);
         StopCoroutine(nameof(WaitForHideStoryText)); StartCoroutine(WaitForHideStoryText(time));
         return time;
     }
-    IEnumerator WaitForStoryText(string textCh, string textEn = "English") {
+    IEnumerator WaitForStoryText(string textCh, string textEn = "English")
+    {
         yield return new WaitForSeconds(SetStoryText(textCh, textEn));
     }
-    IEnumerator WaitForHideStoryText(float delay) {
+    IEnumerator WaitForHideStoryText(float delay)
+    {
         yield return new WaitForSeconds(delay);
         textStory.text = "";
         DOTween.Kill("StoryBackground"); shapeBack.DOScaleX(0, 0.2f).SetId("StoryBackground");
     }
 
-    // 刷怪
+    // 鍒锋€�
     private Dictionary<Spawner.EnemyType, List<Spawner>> spawners = null;
-    public void Spawn(Spawner.EnemyType type, int count = 1) {
-        // 初始化
-        if (spawners == null) {
+    public void Spawn(Spawner.EnemyType type, int count = 1)
+    {
+        // 鍒濆�鍖�
+        if (spawners == null)
+        {
             spawners = new();
-            foreach (Spawner spawner in FindObjectsOfType<Spawner>()) {
-                if (spawners.ContainsKey(spawner.type)) {
+            foreach (Spawner spawner in FindObjectsOfType<Spawner>())
+            {
+                if (spawners.ContainsKey(spawner.type))
+                {
                     spawners[spawner.type].Add(spawner);
-                } else {
+                }
+                else
+                {
                     spawners[spawner.type] = new() { spawner };
                 }
             }
         }
-        // 实际刷怪
+        // 瀹為檯鍒锋€�
         spawners[type].Shuffle();
-        for (int i = 0; i < Mathf.Min(6, count); i++) {
+        for (int i = 0; i < Mathf.Min(6, count); i++)
+        {
             spawners[type][i].Spawn();
         }
     }
 
-    // 流程控制
-    IEnumerator WaitUntilClear(int remain = 0) {
-        while (FindObjectsOfType<EnemyBase>().Length - FindObjectsOfType<EnemyArrow>().Length > remain) { // 要算上自己
+    // 娴佺▼鎺у埗
+    IEnumerator WaitUntilClear(int remain = 0)
+    {
+        while (FindObjectsOfType<EnemyBase>().Length - FindObjectsOfType<EnemyArrow>().Length > remain)
+        { // 瑕佺畻涓婅嚜宸�
             yield return new WaitForSeconds(0.1f);
         }
     }
-    IEnumerator WaitUntilPickDice() {
-        while (FindObjectsOfType<DiceEntity>().Length > 0) {
+    IEnumerator WaitUntilPickDice()
+    {
+        while (FindObjectsOfType<DiceEntity>().Length > 0)
+        {
             yield return new WaitForSeconds(0.1f);
         }
     }
 
-    // 故事
+    // 鏁呬簨
     public int stage = 0;
-    void Start() {
+    void Start()
+    {
         StartCoroutine(test());
         StartCoroutine(spawnArrow());
     }
     bool canSpawnArrow = true;
-    IEnumerator test() {
-        while (true) {
+    IEnumerator test()
+    {
+        while (true)
+        {
             canSpawnArrow = true;
             Spawn(Spawner.EnemyType.Mover, 3);
-            SetStoryText("先刷几个瞎晃悠的", "");
+            SetStoryText("鍏堝埛鍑犱釜鐬庢檭鎮犵殑", "");
             yield return new WaitForSeconds(4f);
 
             Spawn(Spawner.EnemyType.Heavy, 2);
-            SetStoryText("然后是两个贼硬的……", "");
+            SetStoryText("鐒跺悗鏄�袱涓�醇纭�殑鈥︹€�", "");
             yield return StartCoroutine(WaitUntilClear(2));
 
             canSpawnArrow = false;
             InputM.DropDice(Modules.RandomOne(InputM.keyTypes.ToList()));
-            SetStoryText("来一个骰子吧……?", "");
+            SetStoryText("鏉ヤ竴涓��瀛愬惂鈥︹€︼紵", "");
             yield return StartCoroutine(WaitUntilPickDice());
 
-            yield return StartCoroutine(WaitForStoryText("准备好,下一轮要来了!", ""));
+            yield return StartCoroutine(WaitForStoryText("鍑嗗�濂斤紝涓嬩竴杞��鏉ヤ簡锛�", ""));
         }
     }
-    IEnumerator spawnArrow() {
-        while (true) {
+    IEnumerator spawnArrow()
+    {
+        while (true)
+        {
             yield return new WaitForSeconds(5f);
             if (canSpawnArrow) Spawn(Spawner.EnemyType.Arrow, 2);
         }
     }
 
-}
+}

Некоторые файлы не были показаны из-за большого количества измененных файлов