//计算距离 private void CalculateDir(Vector3 pre, Vector3 next) { float x = next.x - pre.x; float y = next.y - pre.y; //y方向移动 if (Mathf.Abs(y) > Mathf.Abs(x)) { animator.ChangeDir(y > 0 ? PlayPicture.AnimDir.Up : PlayPicture.AnimDir.Down); } //x方向移动 else { animator.ChangeDir(x > 0 ? PlayPicture.AnimDir.Right : PlayPicture.AnimDir.Left); } }
// Update is called once per frame void Update() { //控制主角移动以及暂停 if (GameControl.Instance.isGameStrat) { //右 if (Input.GetKey(KeyCode.D)) { Vector2 dest = Player.position + Vector2.right * MoveSpeed; Player.MovePosition(dest); animator.ChangeDir(PlayPicture.AnimDir.Right); } //下 else if (Input.GetKey(KeyCode.S)) { Vector2 dest = Player.position + Vector2.down * MoveSpeed; Player.MovePosition(dest); animator.ChangeDir(PlayPicture.AnimDir.Down); } //左 else if (Input.GetKey(KeyCode.A)) { Vector2 dest = Player.position + Vector2.left * MoveSpeed; Player.MovePosition(dest); animator.ChangeDir(PlayPicture.AnimDir.Left); } //上 else if (Input.GetKey(KeyCode.W)) { Vector2 dest = Player.position + Vector2.up * MoveSpeed; Player.MovePosition(dest); animator.ChangeDir(PlayPicture.AnimDir.Up); } //暂停 else if (Input.GetKey(KeyCode.P)) { //按下P之前是暂停状态 if (isGamePause) { isGamePause = false; //恢复为原始速度 MoveSpeed = PlayerPauseSpeed; enemy1.MoveSpeed = EnemyPauseSpeed + enemy1.AddSpeed; enemy2.MoveSpeed = EnemyPauseSpeed + enemy2.AddSpeed; enemy3.MoveSpeed = EnemyPauseSpeed + enemy3.AddSpeed; enemy4.MoveSpeed = EnemyPauseSpeed + enemy4.AddSpeed; } //按下P之前是非暂停状态 else { isGamePause = true; //暂停时速度为0 MoveSpeed = 0; enemy1.MoveSpeed = 0; enemy2.MoveSpeed = 0; enemy3.MoveSpeed = 0; enemy4.MoveSpeed = 0; } } } }