コード例 #1
0
ファイル: EnemyOneCtrl.cs プロジェクト: andong97/HollowKnight
 /// <summary>
 /// 控制敌人的移动方法
 /// </summary>
 void Move()
 {
     if (isDamage)
     {
         return;
     }
     if (isAttack)
     {
         Vector2 playerH = (GameObject.FindGameObjectWithTag("Player").transform.position - transform.position);
         if (playerH.x > 0)
         {
             transform.Translate(Vector2.right * speed * Time.deltaTime, Space.Self);
         }
         else if (playerH.x < 0)
         {
             transform.Translate(Vector2.left * speed * Time.deltaTime, Space.Self);
         }
         return;
     }
     transform.Translate(Vector2.right * (int)nowDir * speed * Time.deltaTime, Space.Self);
     if (Vector2.Distance(transform.position, StartPosition) > 3f)
     {
         nowDir = (EnemyDir)(-(int)nowDir);
         transform.localScale = new Vector2((int)nowDir, 1);
     }
 }
コード例 #2
0
ファイル: EnemyOneCtrl.cs プロジェクト: andong97/HollowKnight
    //被攻击受伤后退
    IEnumerator onDamageing(AttackDir nowAtkDir)
    {
        isDamage = true;
        if (nowAtkDir == AttackDir.Left)
        {
            E_body.velocity = new Vector2(-10f, 0);
        }
        else if (nowAtkDir == AttackDir.Right)
        {
            E_body.velocity = new Vector2(10f, 0);
        }
        else if (nowAtkDir == AttackDir.Down)
        {
        }
        hp -= 1;
        if (hp <= 0)
        {
            Death();
        }
        yield return(new WaitForSeconds(0.2f));

        E_body.velocity = Vector2.zero;
        if ((int)nowDir == (int)nowAtkDir)
        {
            StartPosition        = transform.position;
            nowDir               = (EnemyDir)(-(int)nowDir);
            transform.localScale = new Vector2((int)nowDir, 1);
        }
        yield return(new WaitForSeconds(0.3f));

        //E_body.velocity = Vector2.zero;
        isDamage = false;
    }
コード例 #3
0
ファイル: EnemyOneCtrl.cs プロジェクト: andong97/HollowKnight
 // Use this for initialization
 void Start()
 {
     StartPosition = transform.position;
     nowDir        = EnemyDir.Right;
     E_animator    = GetComponent <Animator>();
     E_body        = GetComponent <Rigidbody2D>();
     charaview     = GameObject.Find("UI").transform.Find("Canvas").Find("Charactor").GetComponent <CharactorCtrl>();
 }
コード例 #4
0
 void OnCollisionEnter2D(Collision2D other)
 {
     if (other.gameObject.tag == "Ground")
     {
         nowDir = (EnemyDir)(-(int)nowDir);
         transform.localScale = new Vector2((int)nowDir, 1);
     }
 }