96 lines
2.6 KiB
C#
96 lines
2.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.InputSystem;
|
|
using System.Linq;
|
|
using UnityEngine.InputSystem.DualShock;
|
|
|
|
[RequireComponent(typeof(PlayerInput))]
|
|
public class PlayerMovement : MonoBehaviour
|
|
{
|
|
public float moveSpeed = 5f;
|
|
private Rigidbody2D rb;
|
|
|
|
private bool right = false;
|
|
|
|
[Header("Whipping")]
|
|
[SerializeField]
|
|
//RopeWhipAttack whipAttack;
|
|
public float whipSmashSpeed = 2f;
|
|
public float whipSmashDamageMult = 2f;
|
|
|
|
[SerializeField]
|
|
private float whipMoveSpeed = 25f;
|
|
|
|
[SerializeField]
|
|
private float maxWhipMoveSpeed = 30f;
|
|
|
|
private PlayerInput playerInput;
|
|
|
|
private HealthComponent hp;
|
|
private PlayerCollideAttack attack;
|
|
|
|
private void Start()
|
|
{
|
|
rb = GetComponent<Rigidbody2D>();
|
|
playerInput = GetComponent<PlayerInput>();
|
|
hp = GetComponent<HealthComponent>();
|
|
attack = GetComponent<PlayerCollideAttack>();
|
|
|
|
if (gameObject.name == "Player2")
|
|
{
|
|
playerInput.useArrowKeys = true;
|
|
}
|
|
|
|
if (playerInput.controller != null)
|
|
{
|
|
var pad = (DualShockGamepad)Gamepad.all.ElementAtOrDefault(playerInput.PlayerNum);
|
|
if (pad == null) return;
|
|
|
|
if (playerInput.PlayerNum == 1)
|
|
pad.SetLightBarColor(Color.red);
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
//if (playerInput.movement != Vector2.zero)
|
|
// animationHandler.Run(true);
|
|
//else
|
|
// animationHandler.Run(false);
|
|
}
|
|
|
|
private void FixedUpdate()
|
|
{
|
|
//if (whipAttack.IsBeingWhipped)
|
|
//{
|
|
// //float sign = Vector2.Dot((whipAttack.joint.position - whipAttack.otherPlayerAttack.joint.position).normalized, movement.normalized);
|
|
|
|
// Vector2 ropeDir = whipAttack.otherPlayerAttack.joint.position - whipAttack.joint.position;
|
|
// Vector2 tangent = new Vector2(-ropeDir.y, ropeDir.x).normalized;
|
|
|
|
// rb.AddForce(Vector2.Dot(playerInput.movement, tangent) * tangent * whipMoveSpeed);
|
|
// rb.velocity = Vector2.ClampMagnitude(rb.velocity, maxWhipMoveSpeed);
|
|
//}
|
|
//else if (whipAttack.IsWhippingOtherPlayer)
|
|
//{
|
|
// playerInput.movement = Vector2.zero;
|
|
//}
|
|
//else
|
|
{
|
|
rb.AddForce(playerInput.movement * moveSpeed);
|
|
}
|
|
|
|
}
|
|
|
|
void OnCollisionStay2D(Collision2D collision)
|
|
{
|
|
if (collision.collider.gameObject.CompareTag("Enemy"))
|
|
{ // Other object is an enemy
|
|
|
|
hp.TakeDamage(1f);
|
|
|
|
}
|
|
}
|
|
}
|