コード例 #1
0
    /// <summary>
    /// 毎フレーム呼ばれる処理
    /// </summary>
    /// <param name="arg_player">Argument player.</param>
    public void OnUpdate(ActorPlayer arg_player)
    {
        arg_player.transform.position =
            new Vector2(arg_player.colPlayerOBject.transform.position.x,
                        arg_player.transform.position.y);

        //パイプから離れたら通常に戻る
        if (arg_player.ExitCollider)
        {
            arg_player.StateTransion(new PlayerIdle());
        }
    }
コード例 #2
0
    /// <summary>
    /// 毎フレーム呼ばれる処理
    /// </summary>
    /// <param name="arg_player">Argument player.</param>
    public void OnUpdate(ActorPlayer arg_player)
    {
        //落下状態は例外として最優先する
        if (arg_player.colPlayerOBject)
        {
            if (arg_player.colPlayerOBject.tag == "Paipu")
            {
                arg_player.StateTransion(new PlayerFall());
            }
        }

        //入力が無い場合は
        else if (!arg_player.m_touchZone.pressing && !arg_player.m_touchZone.longpressing)
        {
            arg_player.StateTransion(new PlayerIdle());
        }

        //プレスのみの場合は通常移動
        else if (arg_player.m_touchZone.pressing)
        {
            arg_player.StateTransion(new PlayerRun());
        }//入力が何もない場合デフォルト状態
    }
コード例 #3
0
    /// <summary>
    /// 毎フレーム呼ばれる処理
    /// </summary>
    /// <param name="arg_player"></param>
    public void OnUpdate(ActorPlayer arg_player)
    {
        //フリックでボールショット
        if (arg_player.m_touchZone.flicking)
        {
            arg_player.ballObject.StateTransion(new BallShot());
        }

        //入力が無ければ通常へ戻る
        if (!arg_player.m_touchZone.pressing)
        {
            arg_player.StateTransion(new PlayerIdle());
        }
    }
コード例 #4
0
    /// <summary>
    /// 毎フレーム呼ばれる処理
    /// </summary>
    /// <param name="arg_player">M player.</param>
    public void OnUpdate(ActorPlayer arg_player)
    {
        if (arg_player.m_touchZone.pressing)
        {
            SoundPlayer.Instance.PlaySE("PlayerWalk");

            float m_length;
            float m_triggerLength = 2f;

            float longPresslengs;
            longPresslengs = Input.mousePosition.x - arg_player.m_touchZone.pressStartPosition.x;


            Vector2 currentTouchPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Vector2 touchStartPos   = Camera.main.ScreenToWorldPoint(arg_player.m_touchZone.pressStartPosition);

            m_length = touchStartPos.x - currentTouchPos.x;

            //ここでスピードは書いちゃダメです
            arg_player.m_moveSpeed = 0.05f;

            //スワイプの長さに応じて移動速度アップ
            if (m_length > 5 || m_length < -5)
            {
                arg_player.m_moveSpeed = 0.07f;
                if (m_length > 12 || m_length < -12)
                {
                    arg_player.m_moveSpeed = 0.1f;
                }
            }

            //一定値その場で長押し状態で射出待機状態
            if (arg_player.m_touchZone.longpressing && longPresslengs < swipeLength && longPresslengs > -swipeLength)
            {
                if (!moving)
                {
                    arg_player.StateTransion(new PlayerShot());
                    Debug.Log("射出");
                }
            }

            //一定値以上スワイプしたら移動開始
            if (m_length < -m_triggerLength)
            {
                arg_player.transform.position += new Vector3(arg_player.m_moveSpeed, 0, 0);
                arg_player.m_direction         = ActorBase.Direction.Right;
                moving = true;
            }
            if (m_length > m_triggerLength)
            {
                arg_player.transform.position -= new Vector3(arg_player.m_moveSpeed, 0, 0);
                arg_player.m_direction         = ActorBase.Direction.Left;
                moving = true;
            }
        }
        //指を離したら通常に戻る
        else
        {
            SoundPlayer.Instance.MuteSE();
            arg_player.StateTransion(new PlayerIdle());
        }
    }