using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class PlayerController : MonoBehaviour

{

ย  ย  GameObjectManager gameobjectmanager;

ย  ย  Rigidbody2D rigid2d;

ย  ย  Animator animator;

ย  ย  //ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ ์ด๋™์†๋„

ย  ย  private float P_movespeed = 3.0f;

ย  ย  //ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ ์ ํ”„๋†’์ด

ย  ย  private float P_JumpForce = 300.0f;

ย  ย  //ํ”Œ๋ ˆ์ด์–ด ์ด๋™์†๋„ ์ œํ•œ

ย  ย  private float P_maxMoveSpeed = 3.0f;

ย  ย  //๊ฐ•ํ™”์ˆ˜์น˜์— ๋”ฐ๋ฅธ ์ด๋™, ์ ํ”„์†๋„ ์ฆ๊ฐ€๋Ÿ‰

ย  ย  public float P_IncreaseSpeed = 0.2f;

ย  ย  public float P_IncreaseJump = 100.0f;


ย  ย  void Start()

ย  ย  {

ย  ย  ย  ย  this.gameobjectmanager = GameObject.Find("GameObjectManager").GetComponent<GameObjectManager>();

ย  ย  ย  ย  this.rigid2d = GetComponent<Rigidbody2D>();

ย  ย  ย  ย  this.animator = GetComponent<Animator>();


ย  ย  }



ย  ย  void Update()

ย  ย  {



ย  ย  ย  ย  this.P_movespeed += this.P_IncreaseSpeed * this.gameobjectmanager.m_PlayerSpeedUp;

ย  ย  ย  ย  this.P_JumpForce += this.P_IncreaseJump * this.gameobjectmanager.m_PlayerJumpUp;


ย  ย  ย  ย  //์ŠคํŽ˜์ด์Šค ๋ฐ”๋ฅผ ๋ˆ„๋ฅผ ์‹œ ์ ํ”„

ย  ย  ย  ย  if (Input.GetKeyDown(KeyCode.Space)&&this.rigid2d.velocity.y == 0)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  this.rigid2d.AddForce(transform.up * this.P_JumpForce);

ย  ย  ย  ย  }


ย  ย  ย  ย  if (this.rigid2d.velocity.y != 0)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  this.animator.SetTrigger("JumpTrigger");

ย  ย  ย  ย  }


ย  ย  ย  ย  //์ขŒ์šฐ ์ด๋™

ย  ย  ย  ย  int k = 0;

ย  ย  ย  ย  if(Input.GetKey(KeyCode.RightArrow))

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  k = 1;

ย  ย  ย  ย  }

ย  ย  ย  ย  if(Input.GetKey(KeyCode.LeftArrow))

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  k = -1;

ย  ย  ย  ย  }

ย  ย  ย  ย  //ํ”Œ๋ ˆ์ด์–ด ์ด๋™์†๋„

ย  ย  ย  ย  float speedx = Mathf.Abs(this.rigid2d.velocity.x);



ย  ย  ย  ย  //์ด๋™

ย  ย  ย  ย  if (speedxย  < this.P_maxMoveSpeed)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  this.rigid2d.AddForce(transform.right * k * P_movespeed);

ย  ย  ย  ย  }


ย  ย  ย  ย  speedx *= k;

ย  ย  ย  ย  //ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋Œ€๊ธฐ ์ค‘์ธ์ง€ ํ™•์ธ, ์ด๋™ ๋ชจ์…˜์ด ์—†์„ ๊ฒฝ์šฐ ๋Œ€๊ธฐ ๋ชจ์…˜ ์ถœ๋ ฅ

ย  ย  ย  ย  if (speedx == 0&&this.rigid2d.velocity.y == 0)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  this.animator.SetTrigger("IdleTrigger");

ย  ย  ย  ย  }

ย  ย  ย  ย  //ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์›€์ง์ด๊ณ  ๊ณต์ค‘์— ์žˆ์ง€ ์•Š์„ ๋•Œ ๊ฑท๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ถœ๋ ฅ

ย  ย  ย  ย  if (speedx != 0&&this.rigid2d.velocity.y == 0)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  this.animator.SetTrigger("WalkTrigger");

ย  ย  ย  ย  }

ย  ย 

ย  ย  ย  ย  //ํ”Œ๋ ˆ์ด์–ด ํšŒ์ „

ย  ย  ย  ย  if (k !=0)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  transform.localScale = new Vector3(2*k, 2, 2);

ย  ย  ย  ย  }





ย  ย  ย 

ย  ย  }

}




๋งต ์ œ์ž‘ ์ž‘์—…ํ•˜๊ณ  ์žˆ๊ณ  ํƒ€์ผ๋งต ์ฝœ๋ผ์ด๋” ๋„ฃ์„๋•Œ๋Š” ์ค‘๊ฐ„์— ๋‚‘๊ธฐ๋Š” ๋ถ€๋ถ„(์•„๋งˆ ํ”ฝ์…€๋ฌธ์ œ์ธ๋“ฏ)์ด ์žˆ์–ด์„œ y๊ฐ’์ด ๋ฐ”๋€Œ๋‹ˆ๊นŒ ๊ทธ๋Ÿฌ๋ ค๋‹ˆ ํ–ˆ๋Š”๋ฐ

์ปดํฌ์ง“ ๋„ฃ์œผ๋‹ˆ๊นŒ ๊ฑท๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์•ˆ ๋‚˜์˜ค๊ณ  ์ƒ์‹œ๋กœ ์ ํ”„ํ•ด๋ฒ„๋ฆฌ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋‚˜์™€๋ฒ„๋ฆฌ๋Š”๋ฐ velocity y๊ฐ’์ด ๋ชป๋ฐ”๋€Œ๊ฒŒ๋Š” ๋ชปํ• ๊นŒ ์ด๊ฑฐ?