示例#1
0
 // Use this for initialization
 void Start()
 {
     //コンポーネントを事前に参照
     rigidbody = GetComponent <Rigidbody2D>();
     //プレイヤーシーンの状態をスタート状態にします
     playerState = PlayerState.Start;
     //プレイ中のプレイヤーの状態をノーマルモード状態にします
     nowPlayerState = NowPlayerState.NormalMoad;
     //ジャンプ判定をfalse(していない)状態に設定します
     jampingFrag = false;
     //アタック状態判定をfalse(していない)状態に設定します
     attackFlag = false;
     //アタック時間を初期化します
     attackTime = attackTimeValue;
     // アニメーションコンポーネント取得
     animatorComponent = gameObject.GetComponent <Animator>();
     //SEコントローラーを参照します
     seController = GameObject.Find("SEManager").GetComponent <SEController>();
     // サウンドソースコンポーネント取得
     //audioSource = gameObject.GetComponent<AudioSource>();
     //audioSource.clip = audioClip[0];
 }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        //ゲーム中のコードです
        switch (playerState)
        {
        //メイン画面スタート時の処理です
        case PlayerState.Start:
            //歩行していません
            wakingFlag = false;
            //プレイヤー子のオブジェクトを非表示にします
            player_Ko.SetActive(false);
            break;

        //メイン画面プレイ中の処理です
        case PlayerState.PlayStage:
        {
            //歩行しています
            wakingFlag = true;

            //(移動用)のリジットボディのベロシティーを取得します
            var velocity = rigidbody.velocity;
            //ボックスコライダー2Dを取得します
            //var boxCollider2d = gameObject.GetComponent<BoxCollider2D>();
            ////ボックスコライダー2DのSIZEを取得します
            //Vector2 boxColliderSize = boxCollider2d.size;
            //ボックスコライダー2DのSIZEを初期化します
            //boxColliderSize = new Vector2(0.4f, 0.5f);
            ////ボックスコライダー2DのSizeを格納します
            //boxCollider2d.size = boxColliderSize;

            //メイン画面プレイ中のプレイヤーのステータスの処理です
            switch (nowPlayerState)
            {
            //通常状態
            case NowPlayerState.NormalMoad:
            {
                //キャラクターのスプライトを設定します
                GetComponent <SpriteRenderer>().sprite = slimeSprite[0];
                //右移動を設定
                velocity.x = moveSpeed;

                //ジャンプボタンが押された場合
                if (Input.GetKeyDown(KeyCode.Space))
                {
                    if (jampingFrag == false)
                    {
                        wakingFlag  = false;
                        jampingFrag = true;
                        velocity.y  = jumpSpeed;
                    }
                }
                animatorComponent.SetBool("Jamp", jampingFrag);
                playerSte = 0;
            }
            break;

            //パワーモード
            case NowPlayerState.PowerMoad:
            {
                //キャラクターのスプライトを設定します
                GetComponent <SpriteRenderer>().sprite = slimeSprite[1];
                //アニメーションの「PowerMode」を設定します
                animatorComponent.SetBool("JampModeFlag", false);
                animatorComponent.SetBool("PowerModeFlag", true);

                //右移動を設定
                velocity.x = moveSpeed;
                //Aボタンが押された場合
                //スペシャルモード
                if (Input.GetKeyDown(KeyCode.A))
                {
                    aninetionrosTime += aninetionrosTimeMax;
                    //アタックフラグをtrue(可能)状態に設定します
                    attackFlag = true;
                    //アタック状態時間を設定します
                    attackTime = attackTimeValue;
                    //プレイヤーのステータスをアタックモードに設定します
                    playerSpecialState = PlayerSpecialState.AttackMode;
                }
                //ジャンプボタンが押された場合
                if (Input.GetKeyDown(KeyCode.Space) && !attackFlag)
                {
                    if (jampingFrag == false)
                    {
                        wakingFlag  = false;
                        jampingFrag = true;
                        velocity.y  = jumpSpeed;
                    }
                }

                //アタックモード
                switch (playerSpecialState)
                {
                case PlayerSpecialState.AttackMode:
                {
                    if (attackFlag == true)
                    {
                        aninetionrosTime -= Time.deltaTime;
                        animatorComponent.SetBool("AttackFlag", true);
                        jampingFrag = false;
                        if (aninetionrosTime <= 0)
                        {
                            //var boxCollider2d = gameObject.GetComponent<BoxCollider2D>();
                            //Vector2 boxColliderSize = boxCollider2d.size;
                            //boxColliderSize = new Vector2(2.25f, 0.4f);
                            //boxCollider2d.size = boxColliderSize;
                            player_Ko.SetActive(true);
                            attackTime -= Time.deltaTime;
                            //右移動を設定
                            velocity.x = moveSpeed;

                            if (jampingFrag == true)
                            {
                                velocity.y = -5;
                            }

                            if (attackTime < 0)
                            {
                                attackFlag = false;
                            }
                        }
                    }
                    else if (attackFlag == false)
                    {
                        nowPlayerState     = NowPlayerState.PowerMoad;
                        playerSpecialState = PlayerSpecialState.None;
                        animatorComponent.SetBool("AttackFlag", false);
                        player_Ko.SetActive(false);
                    }
                }
                break;
                }
                playerSte = 1;
            }
            break;

            //ジャンプモード
            case NowPlayerState.JampMoad:
            {
                GetComponent <SpriteRenderer>().sprite = slimeSprite[2];
                animatorComponent.SetBool("PowerModeFlag", false);
                animatorComponent.SetBool("JampModeFlag", true);
                //右移動を設定
                velocity.x = moveSpeed;

                //ジャンプボタンが押された場合
                if (Input.GetKey(KeyCode.A))
                {
                    animatorComponent.SetBool("DashFlag", true);
                    //右移動を設定
                    velocity.x = moveSpeed * 1.65f;
                }
                else if (Input.GetKeyUp(KeyCode.A))
                {
                    animatorComponent.SetBool("DashFlag", false);
                }
                //ジャンプボタンが押された場合
                if (Input.GetKeyDown(KeyCode.Space))
                {
                    if (jampingFrag == false)
                    {
                        wakingFlag  = false;
                        jampingFrag = true;
                        velocity.y  = jumpSpeed;
                    }
                }
                playerSte = 2;
            }
            break;
            }
            //速度を更新
            rigidbody.velocity = velocity;
        }
        break;

        case PlayerState.Gameover:
            if (playerSte == 0)
            {
                animatorComponent.SetBool("LifeFlag", false);
            }
            else if (playerSte == 1)
            {
                animatorComponent.SetBool("LifeFlag", false);
            }
            else if (playerSte == 2)
            {
                animatorComponent.SetBool("LifeFlag", false);
            }
            Debug.Log("playerSte= " + playerSte);
            break;

        case PlayerState.Gameclear:
        {
            var velocity = rigidbody.velocity;
            //右移動を設定
            velocity.x = moveSpeed;
            //速度を更新
            rigidbody.velocity = velocity;
        }
        break;
        }
    }