void OnTriggerEnter2D(Collider2D col)
        {
            // 相手キャラクター に当たったら、この弾を消すぜ☆
            if (col.gameObject.tag == ThisSceneDto.PlayerToTag[opponent])
            {
                if (mainCameraScript != null)// なぜかヌルになっていることがあるぜ☆(^~^)
                {
                    var opponentKey = PlayerIndexes.FromArrayIndex(opponent);

                    // 爆発の粒子を作るぜ☆
                    TakoyakiParticleScript.Add(this.transform.position.x, this.transform.position.y);

                    // HPメーター
                    {
                        float damage;
                        switch (opponentKey)
                        {
                        case PlayerIndex.Player1: damage = -50.0f; break;     // 1プレイヤーにダメージの場合マイナス☆

                        case PlayerIndex.Player2: damage = 50.0f; break;

                        default: Debug.LogError("Bullet / HP meter / opponent"); damage = 0.0f; break;
                        }

                        // コンピューターが連射をしていると、mainCameraScript がヌルになっていることがあるようだ。
                        mainCameraScript.OffsetBar(damage);
                    }

                    // 手番
                    {
                        // 攻撃を受けた方の手番に変わるぜ☆(^▽^)
                        mainCameraScript.SetTeban(opponentKey);
                    }

                    // この弾を消すぜ☆
                    Destroy(gameObject);
                }
            }
        }
Esempio n. 2
0
        //void OnCollisionEnter2D(Collider2D col)
        //{
        //    Debug.Log("物体だ☆! col.tag = " + col.tag);
        //}
        /// <summary>
        /// BoxCollider2D(等のPhysics2D), Rigidbody2D の2つをアタッチしているものと接触したとき。
        /// </summary>
        /// <param name="col"></param>
        void OnTriggerEnter2D(Collider2D col)
        {
            #region 当たり判定
            if (col.tag == playerScript.OpponentHitboxTag)// 相手の 攻撃当たり判定くん が重なった時
            {
                // ブロックしているかどうか判定☆
                //CommonInput.PlayerInput input = CommonInput.player_to_input[playerIndex];
                CommonInput.PlayerInput input = CommonInput.Update((PlayerIndex)playerIndex);
                if (FacingOpponentMoveFwBkSt.Back == playerScript.GetFacingOpponentMoveFwBkSt(input.leverX))
                {
                    //if ((int)PlayerIndex.Player1==playerIndex)
                    //{
                    //    Debug.Log("ブロック☆! col.tag = " + col.tag + " input.leverX = " + input.leverX + " Time.deltaTime = " + Time.deltaTime);
                    //}
                    audioSources[1].PlayOneShot(audioSources[1].clip);// 効果音を鳴らすぜ☆
                    playerScript.Animator.SetTrigger(SceneCommon.TRIGGER_BLOCK);
                }
                else
                {
                    //if ((int)PlayerIndex.Player1 == playerIndex)
                    //{
                    //    Debug.Log("痛っ☆! col.tag = " + col.tag + " input.leverX = " + input.leverX + " Time.deltaTime = " + Time.deltaTime);
                    //}
                    playerScript.DamageHitCount++;                     // 攻撃を受けた回数。

                    audioSources[0].PlayOneShot(audioSources[0].clip); // 効果音を鳴らすぜ☆

                    // 爆発の粒子を作るぜ☆
                    TakoyakiParticleScript.Add(transform.position.x, transform.position.y);

                    // HPメーター
                    {
                        float damage = playerScript.MainCameraScript.Player_to_attackPower[(int)playerScript.Opponent];

                        float value = damage * (playerIndex == (int)PlayerIndex.Player1 ? -1 : 1);
                        playerScript.MainCameraScript.OffsetBar(value);

                        if (10 <= playerScript.DamageHitCount)
                        {
                            // ダウン・アニメーションの開始
                            playerScript.Pull_Down();
                        }
                        else if (100.0f <= damage)
                        {
                            // ダメージ・アニメーションの開始
                            playerScript.Pull_DamageH();
                        }
                        else if (50.0f <= damage)
                        {
                            // ダメージ・アニメーションの開始
                            playerScript.Pull_DamageM();
                        }
                        else
                        {
                            // ダメージ・アニメーションの開始
                            playerScript.Pull_DamageL();
                        }
                    }

                    // 手番
                    {
                        // 攻撃を受けた方の手番に変わるぜ☆(^▽^)
                        playerScript.MainCameraScript.SetTeban(playerScript.Opponent);
                    }
                }
            }
            else
            {
                //Debug.Log("相手の攻撃じゃないものに当たった☆! col.tag = " + col.tag);
            }
            #endregion
        }