예제 #1
0
 /// <summary>
 /// 攻撃
 /// </summary>
 /// <param name="player">攻撃する対象(プレイヤー)</param>
 private void Attack(Player1 player1)
 {
     player1.Damage();
 }
예제 #2
0
        /// <summary>
        /// 追う
        /// </summary>
        /// <param name="player">追う対象のプレイヤー</param>
        private void Chase(Player1 player1)
        {
            //プレイヤーの配列内番号の取得
            Vector2Int playerArrayPos = player1.m_PlayerArrayPos;
            bool       moveXFlag      = false; //X軸に移動するかのフラグ
            bool       moveYFlag      = false; //Y軸に移動するかのフラグ
            bool       attackFlag     = false; //攻撃する

            //X軸が同じかどうか
            if (m_ArrayPos.x == playerArrayPos.x)
            {
                //Y軸が隣接しているかどうか
                if ((m_ArrayPos.y + 1) == playerArrayPos.y || (m_ArrayPos.y - 1) == playerArrayPos.y)
                {
                    //攻撃するためフラグを立てる
                    attackFlag = true;

                    if ((m_ArrayPos.y + 1) == playerArrayPos.y)
                    {
                        m_LookDirection = LookDirection.DOWN;
                    }
                    else
                    {
                        m_LookDirection = LookDirection.UP;
                    }
                }
                else
                {
                    //Y軸を移動させるためフラグを立てる
                    moveYFlag = true;
                }
            }

            //Y軸が同じかどうか
            if (m_ArrayPos.y == playerArrayPos.y)
            {
                //X軸が隣接しているかどうか
                if ((m_ArrayPos.x + 1) == playerArrayPos.x || (m_ArrayPos.x - 1) == playerArrayPos.x)
                {
                    //攻撃するためフラグを立てる
                    attackFlag = true;

                    if ((m_ArrayPos.x + 1) == playerArrayPos.x)
                    {
                        m_LookDirection = LookDirection.RIGHT;
                    }
                    else
                    {
                        m_LookDirection = LookDirection.LEFT;
                    }
                }
                else
                {
                    //X軸を移動させるためのフラグを立てる
                    moveXFlag = true;
                }
            }

            //ここまでどちらも移動フラグが立っていなかったら
            if (!moveXFlag && !moveYFlag && !attackFlag)
            {
                //Y座標を優先してそろえていく
                moveYFlag = true;
            }

            //攻撃フラグが立っているかどうか
            if (attackFlag)
            {
                Debug.Log("Attack");
                Attack(player1);
                m_IsMove = false;
            }

            //X軸の移動フラグが立っているかどうか
            if (moveXFlag)
            {
                //プレイヤーとの位置の比較(プレイヤーが右側にあるかどうか)
                if (m_ArrayPos.x <= player1.m_PlayerArrayPos.x)
                {
                    //右に移動
                    if (MoveCheck(Direction.Right))
                    {
                        m_LookDirection     = LookDirection.RIGHT;
                        m_MoveAnimationFlag = true;
                        ArrayPosMove(m_MoveBlockAmount, 0);

                        m_IsMove = false;
                    }
                }
                else
                {
                    //左に移動
                    if (MoveCheck(Direction.Left))
                    {
                        m_LookDirection     = LookDirection.LEFT;
                        m_MoveAnimationFlag = true;
                        ArrayPosMove(-m_MoveBlockAmount, 0);

                        m_IsMove = false;
                    }
                }
            }

            //Y軸の移動フラグが立っているかどうか
            if (moveYFlag)
            {
                //プレイヤーとの位置の比較(プレイヤーが右側にあるかどうか)
                if (m_ArrayPos.y <= player1.m_PlayerArrayPos.y)
                {
                    //下に移動
                    if (MoveCheck(Direction.Bottom))
                    {
                        m_LookDirection     = LookDirection.DOWN;
                        m_MoveAnimationFlag = true;
                        ArrayPosMove(0, m_MoveBlockAmount);

                        m_IsMove = false;
                    }
                }
                else
                {
                    //上に移動
                    if (MoveCheck(Direction.Top))
                    {
                        m_LookDirection     = LookDirection.UP;
                        m_MoveAnimationFlag = true;
                        ArrayPosMove(0, -m_MoveBlockAmount);

                        m_IsMove = false;
                    }
                }
            }
        }