| | |
| | | { |
| | | public float moveSpeed = 5f; |
| | | public float maxFallSpeed = -20f; |
| | | public float maxFallSpeedDamge = -10f; |
| | | private float maxFallSpeedCurrent = 0f; |
| | | Vector2 moveInput; |
| | | |
| | | Rigidbody2D rb; |
| | | Animator animator; |
| | | Animator animator_rotor; |
| | | public GameObject rotorGO; |
| | | TouchingDirections touchingDirections; |
| | | Damageable health; |
| | | |
| | | [SerializeField] |
| | | private bool _isMoving; |
| | |
| | | private set |
| | | { |
| | | _isMoving = value; |
| | | animator.SetBool(AnimationStrings.Player.IsMoving, value); |
| | | animator.SetBool(AnimationStrings.Player.isMoving, value); |
| | | } |
| | | } |
| | | |
| | |
| | | private set |
| | | { |
| | | _isFlying = value; |
| | | animator.SetBool(AnimationStrings.Player.IsFlying, value); |
| | | rotorSprite.enabled = value; |
| | | animator.SetBool(AnimationStrings.Player.isFlying, value); |
| | | animator_rotor.SetBool(AnimationStrings.Player.isFlying, value); |
| | | } |
| | | } |
| | | |
| | |
| | | public bool IsFacingRight |
| | | { |
| | | get { return _isFacingRight; } |
| | | set { |
| | | set |
| | | { |
| | | if (_isFacingRight != value) |
| | | { |
| | | transform.localScale *= new Vector2(-1, 1); |
| | | } |
| | | _isFacingRight = value; } |
| | | _isFacingRight = value; |
| | | } |
| | | } |
| | | |
| | | public bool CanMove |
| | | { |
| | | get |
| | | { |
| | | Debug.Log("gameIsPaused: " + PauseMenu.GameIsPaused); |
| | | return animator.GetBool(AnimationStrings.canMove) && !PauseMenu.GameIsPaused; |
| | | } |
| | | } |
| | | |
| | | |
| | | Rigidbody2D rb; |
| | | Animator animator; |
| | | public GameObject rotorGO; |
| | | SpriteRenderer rotorSprite; |
| | | |
| | | private void Awake() |
| | | { |
| | | rb = GetComponent<Rigidbody2D>(); |
| | | animator = GetComponent<Animator>(); |
| | | rotorSprite = rotorGO.GetComponent<SpriteRenderer>(); |
| | | } |
| | | |
| | | // Start is called before the first frame update |
| | | void Start() |
| | | { |
| | | |
| | | } |
| | | |
| | | // Update is called once per frame |
| | | void Update() |
| | | { |
| | | |
| | | animator_rotor = rotorGO.GetComponent<Animator>(); |
| | | touchingDirections = GetComponent<TouchingDirections>(); |
| | | health = GetComponent<Damageable>(); |
| | | } |
| | | |
| | | private void FixedUpdate() |
| | |
| | | rb.velocity = new Vector2(moveInput.x * moveSpeed, (moveInput.y * moveSpeed)); |
| | | } |
| | | } |
| | | if (touchingDirections.IsGrounded) |
| | | { |
| | | if (maxFallSpeedCurrent < maxFallSpeedDamge) |
| | | { |
| | | TakeFallDamage(Math.Abs((int)maxFallSpeedCurrent)); |
| | | maxFallSpeedCurrent = 0; |
| | | } |
| | | } |
| | | else if (IsFlying) |
| | | { |
| | | maxFallSpeedCurrent = rb.velocity.y; |
| | | } |
| | | else |
| | | { |
| | | if (maxFallSpeedCurrent > rb.velocity.y) |
| | | { |
| | | maxFallSpeedCurrent = rb.velocity.y; |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void OnMove(InputAction.CallbackContext context) |
| | | { |
| | | moveInput = context.ReadValue<Vector2>(); |
| | | if (CanMove) |
| | | { |
| | | moveInput = context.ReadValue<Vector2>(); |
| | | |
| | | IsMoving = moveInput.x != 0; |
| | | IsFlying = moveInput.y != 0; |
| | | IsMoving = moveInput.x != 0; |
| | | |
| | | SetFacingDirection(moveInput); |
| | | IsFlying = (moveInput.y != 0); |
| | | |
| | | SetFacingDirection(moveInput); |
| | | } |
| | | else |
| | | { |
| | | IsMoving = false; |
| | | IsFlying = false; |
| | | moveInput = Vector2.zero; |
| | | } |
| | | } |
| | | |
| | | private void SetFacingDirection(Vector2 moveInput) |
| | |
| | | } |
| | | } |
| | | |
| | | public void TakeDamage(int damage) |
| | | { |
| | | health.Hit(damage); |
| | | } |
| | | |
| | | public void TakeFallDamage(int fallDamage) |
| | | { |
| | | TakeDamage(fallDamage); |
| | | } |
| | | |
| | | //public void OnRun(InputAction.CallbackContext context) |
| | | //{ |
| | | // if (context.started) // Button pressed |