前回はこちら
 https://pasteldrops.com/2019/03/06/post-735/
まいどまいどアクションゲームを作っていこうと思います。
今回はジャンプ機能を作っていきます。
 まぁ今回は今までの技術+α みたいなもんですが
さて、いつもの通りコマ漫画を書いていきましょう。

。。。なんか溺れている人みたいですね。
ゲーム内では高さが変化するのでちゃんと見えるはずです。たぶん…
ジャンプは、走っていても、歩いていても、どんな状態でもジャンプは使用できます。
 今回はAnyStateから状態をつなげていきます。

パラメータですが、ジャンプアニメーションはループを行わず一回のアニメーションだけでいいので今回はトリガーを使っていきます。
トリガーは一回動作を行ったら勝手にアクションを終了してくれるすぐれものです。

また、アニメーションのスピードは
 ステートのSpeedで変更できます。
 
ということでアニメータの設定は以上です。
 プログラムをガリガリと書いていきましょう。
前回等のプログラムは抜いています。ので
 これを書いても、ジャンプしか出来ません。
 private float CharactorJump = 300.0f;
private bool JumpFlg;
private Rigidbody2D rb;
private Animator animator;
void Start()
{
    JumpFlg = false;
    rb = this.GetComponent();
    animator = this.GetComponent();
}
void Update()
{
    if (Input.GetKeyDown(KeyCode.UpArrow) && !JumpFlg)
    {
        JumpFlg = true;
        rb.AddForce(new Vector2(0, CharactorJump));
        animator.SetTrigger("Jump");
    }
}
//二段ジャンプさせない
private void OnCollisionEnter2D(Collision2D collision)
{
    JumpFlg = false;
}OnCollisionEnter2Dは地面にあたったときに呼び出されます。
 二段ジャンプ対策です。
以上で、キャラクターがジャンプできるようになりました。
 
これで最低限の動きが完成ですね。
次はついにステージ作っていきましょうか。
 つづき…ステージ作り
 
コメント