長夜漫漫無心睡眠,敲敲代碼,越敲越來勁! 我發現好多小朋友都在玩熊出沒之xxxx這個游戲,居然打了一下午都沒玩通第2關,我把測試也叫來陪我一起玩!
結果他也打不通,我再去叫策划,他也沒打過,我去叫主管,他還是沒打過,我再回去叫測試使用游戲修改大師,修改寶石買完全部的裝備!結果他還是沒打過!
(這款游戲,讓我人生都變得沒有了意義!)
人物跟隨手指的移動而移動:
第一種方式: 手指移動了多少,主角就移動多少!(我使用的這種方式,存在問題,手指過快滑動,主角會慢慢跟手指有了距離!)
第二種方式: 手指移動到哪里,主角就慢慢移動到手指所在的位置!(還沒寫代碼,理論上不會出現第一種問題),建議采用這種方式實現
第一種方式的部分代碼實現:
using UnityEngine; using System.Collections; /// <summary> /// 人物的移動 /// </summary> public class PlayerMove : MonoBehaviour { private bool isMove; private Vector3 recordMouseDownPosition; //記錄鼠標單擊的位子 public float speed = 1; public UISprite gameBackground; public UI2DSprite player; public UI2DSpriteAnimation playerAnimation; public Sprite playerLeftState; public Sprite playerRightState; private float areaWidth; private float areaHeight; //角色移動的邊界 void Awake() { //獲取到背景Sprite的寬度和高度 areaWidth = gameBackground.drawingDimensions.z - player.drawingDimensions.z; areaHeight = gameBackground.drawingDimensions.w - player.drawingDimensions.w; } //開始移動 public void PlayerStartMove() { isMove = true; recordMouseDownPosition = Input.mousePosition; } //結束移動 public void PlayerEndMove() { isMove = false; } void LateUpdate() { if (isMove) { //鼠標當前坐標-單擊被記錄的坐標 Vector3 dir = Input.mousePosition - recordMouseDownPosition; //切換左右人物圖片狀態 if (dir.x > 0) { Debug.Log("切換成左"); playerAnimation.enabled = false; player.nextSprite = playerRightState; } else if (dir.x < 0) { Debug.Log("右轉彎圖片"); playerAnimation.enabled = false; player.nextSprite = playerLeftState; } else if (dir.x == 0) { playerAnimation.enabled = true; } //讓人物跟隨手指的方向移動 this.transform.localPosition = new Vector3( transform.localPosition.x + dir.x * 0.7f, transform.localPosition.y + dir.y * 0.7f, transform.localPosition.z); //防止跑出右邊界 if (transform.localPosition.x > areaWidth && dir.x > 0) { this.transform.localPosition = new Vector3( areaWidth, transform.localPosition.y, transform.localPosition.z); } //防止跑出左邊界 if (transform.localPosition.x < -areaWidth && dir.x < 0) { this.transform.localPosition = new Vector3( -areaWidth, transform.localPosition.y, transform.localPosition.z); } //防止跑出上邊界 if (transform.localPosition.y > areaHeight && dir.y > 0) { this.transform.localPosition = new Vector3( transform.localPosition.x, areaHeight, transform.localPosition.z); } //防止跑出下邊界 if (transform.localPosition.y < -areaHeight && dir.y < 0) { this.transform.localPosition = new Vector3( transform.localPosition.x, -areaHeight, transform.localPosition.z); } recordMouseDownPosition = Input.mousePosition; } } }