2025-03-16 21:57:56 +08:00
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEditorInternal;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.InputSystem;
|
2025-03-18 22:32:00 +08:00
|
|
|
|
using UnityEngine.SocialPlatforms.Impl;
|
2025-03-16 21:57:56 +08:00
|
|
|
|
|
|
|
|
|
public class PacMan : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
public PacManInput pacManInputControl;//<2F><><EFBFBD><EFBFBD>ϵͳ
|
|
|
|
|
|
|
|
|
|
public Rigidbody2D rb;
|
2025-03-18 22:32:00 +08:00
|
|
|
|
public Animator anim;
|
2025-03-16 21:57:56 +08:00
|
|
|
|
|
|
|
|
|
public Vector2 inputDirection;//<2F><><EFBFBD>뷽<EFBFBD><EBB7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
public float speed;//<2F>ٶ<EFBFBD>
|
2025-03-20 22:28:26 +08:00
|
|
|
|
public bool die =false;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-03-16 21:57:56 +08:00
|
|
|
|
|
2025-03-18 22:32:00 +08:00
|
|
|
|
public bool invincible;//<2F><EFBFBD>
|
|
|
|
|
public float invincibleTime;//<2F><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
public float timer;//<2F><>ʱ<EFBFBD><CAB1>
|
2025-03-20 22:28:26 +08:00
|
|
|
|
public float remainingInvincibleTime { get; private set; }
|
2025-03-18 22:32:00 +08:00
|
|
|
|
|
2025-03-16 21:57:56 +08:00
|
|
|
|
private void Awake()
|
|
|
|
|
{
|
|
|
|
|
pacManInputControl = new PacManInput();//newһ<77><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ϵͳ
|
|
|
|
|
rb = GetComponent<Rigidbody2D>();
|
2025-03-18 22:32:00 +08:00
|
|
|
|
anim = GetComponent<Animator>();
|
2025-03-16 21:57:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnEnable()
|
|
|
|
|
{
|
|
|
|
|
pacManInputControl.Enable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnDisable()
|
|
|
|
|
{
|
|
|
|
|
pacManInputControl.Disable();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Update()
|
|
|
|
|
{
|
|
|
|
|
inputDirection = pacManInputControl.PacManInputSystem.Move.ReadValue<Vector2>();//<2F><>ȡ<EFBFBD><C8A1>ֵ
|
2025-03-18 22:32:00 +08:00
|
|
|
|
if (invincible)
|
|
|
|
|
{
|
|
|
|
|
PacManInvincible();
|
|
|
|
|
}
|
2025-03-20 22:28:26 +08:00
|
|
|
|
|
|
|
|
|
if (remainingInvincibleTime > 0)
|
|
|
|
|
{
|
|
|
|
|
remainingInvincibleTime -= Time.deltaTime;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-16 21:57:56 +08:00
|
|
|
|
}
|
|
|
|
|
private void FixedUpdate()
|
|
|
|
|
{
|
|
|
|
|
Move();
|
|
|
|
|
PacManAnimation();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Move()
|
|
|
|
|
{
|
|
|
|
|
rb.velocity = new Vector2(inputDirection.x * speed * Time.deltaTime, inputDirection.y * speed * Time.deltaTime);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void PacManAnimation()
|
|
|
|
|
{
|
2025-03-18 22:32:00 +08:00
|
|
|
|
anim.SetFloat("H",inputDirection.x);
|
|
|
|
|
anim.SetFloat("V", inputDirection.y);
|
|
|
|
|
anim.SetBool("invincible", invincible);//<2F>ж<DEB5><D0B6><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void PacManInvincible()
|
|
|
|
|
{
|
|
|
|
|
timer += Time.deltaTime;
|
|
|
|
|
GameManager.instance.invincibleTime = (int)(invincibleTime-timer+1);
|
|
|
|
|
if (timer >= invincibleTime)
|
|
|
|
|
{
|
|
|
|
|
invincible = false;
|
|
|
|
|
timer = 0f; // <20><><EFBFBD>ü<EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
|
|
|
|
}
|
2025-03-16 21:57:56 +08:00
|
|
|
|
}
|
2025-03-20 22:28:26 +08:00
|
|
|
|
|
|
|
|
|
public void ActivateInvincible()
|
|
|
|
|
{
|
|
|
|
|
remainingInvincibleTime = invincibleTime; // <20><><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3>ʱ<EFBFBD><CAB1>
|
|
|
|
|
}
|
2025-03-16 21:57:56 +08:00
|
|
|
|
}
|