Example #1
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider == null)
        {
            return;
        }

        if (collider.tag != "Bullets" && collider.tag != "Player")
        {
            return;
        }

        if (collider.tag == "Bullets")
        {
            // 如果子彈的主人掛了,這顆子彈沒有用處
            if (!collider.GetComponent <bulletControl>().getMaster())
            {
                return;
            }
            // 如果子彈的主人跟我同陣營,這顆子彈不對我有用
            if (collider.GetComponent <bulletControl>().getMaster().tag == gameObject.tag)
            {
                return;
            }
        }

        if (collider.tag == "Bullets")
        {
            hp--;

            healthBarCtrl.GetComponent <healthBarCtrl>().changeHealBar(max_hp, newHp: hp);

            Destroy(collider.gameObject); // 刪掉子彈

            if (hp > 0)
            {
                return;
            }

            // 怪物死亡,加分數
            socreBoardControl.Instance.AddScore();
            // 打死 Boss
            if (gameObject.name.Contains("mob_boss"))
            {
                gamePlayMng.BossFlag = false;
                int now = (int)(System.DateTime.Now.AddHours(-8) - new System.DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds;
                gamePlayMng.BossDeadAwakeTime = now + (int)conf["boss_create_freq"];
                gamePlayMng.addStage();
            }
        }

        Vector3 pos = gameObject.transform.position;

        mobExplClone = Instantiate(explode, gameObject.transform.position, gameObject.transform.rotation); //在外星人的位置產生爆炸
        Destroy(gameObject);
    }