Beispiel #1
0
    //ダメージ
    public override void Damage(IDamageGenerator damageGenerator)
    {
        if (hit)
        {
            hit        = false;
            damage     = damageGenerator.GetPower();
            force      = damageGenerator.GetForce();
            forceSpeed = damageGenerator.GetForceSpeed();

            _life = Mathf.Max(_life - damage, 0);

            // ライフのUIをUpdate
            UpdateLifeUI();

            // ライフが0でゲームオーバーへ
            if (_life <= 0)
            {
                GameOver();
            }

            // 無敵時間のコルーチンを開始
            StartCoroutine("Invincible");

            // ノックバック処理
            GetComponent <Rigidbody2D>().AddForce(force * 5.0f, ForceMode2D.Impulse);
            //Debug.Log(life);
        }
    }
Beispiel #2
0
    // Damage(IDamageGenerator, damage)
    public virtual void Damage(IDamageGenerator damageGenerator, float damage)
    {
        force      = damageGenerator.GetForce();
        forceSpeed = damageGenerator.GetForceSpeed();

        _life = Mathf.Max(_life - damage, 0);
        if (_life <= 0)
        {
            Dead();
        }

        //GetComponent<Rigidbody2D>().AddForce(force * 5.0f, ForceMode2D.Impulse);
        KnockBack(force, forceSpeed);
        Debug.Log(_life);
    }
Beispiel #3
0
    //ダメージ
    public override void Damage(IDamageGenerator damageGenerator)
    {
        damage     = damageGenerator.GetPower();
        force      = damageGenerator.GetForce();
        forceSpeed = damageGenerator.GetForceSpeed();

        if (battoleMode)
        {
            _life = Mathf.Max(_life - damage, 0);
            if (_life <= 0)
            {
                Dead();
            }
        }
        else
        {
            hitCount += damage;
        }
        Debug.Log("boss: " + _life);
        GetComponent <Rigidbody2D> ().AddForce(force * 5.0f, ForceMode2D.Impulse);
    }