やりたいこと
スプライトに対して重力を働かせます。
その状態でスプライトに初速度を与えると、重力に従って速度が変化していきます。
使うイメージ
アクションゲーム全般。
特にマリオ系のアクションゲーム。
スプライトとスクリプト
用意するスプライト
キャラクター(ねこ)
じめん
スクリプト
重力の定義
キャラクターのスプライトに「じゅうりょく」を定義しておきます。
この「じゅうりょく」の処理が走っていると、スプライトは「Yそくど」(速度のY軸方向成分)にそって動きます。
「Yそくど」は重力の影響で減少していき、「じめん」スプライトに当たるとゼロになります。
スプライトがじめんに触れていて「Yそくど」がゼロになると、重力の働きはなくなります。
キャラクタースプライトに重力を常に働かせます。
重力の強さは-1としています。これを大きくすると重力は強くなります。
初速度を指定してジャンプさせる
初速度(「Yそくど」の初期値)を指定すると、「じゅうりょく」コマンドに従って動きます。
ここでは、スペースキーを押すと「Yそくど」に10を代入します。
横方向(X軸)の動きについて
「じゅうりょく」は、「Yそくど」の処理しか行っていないので、X軸のうごきは影響を受けません。
横方向に動きながらジャンプさせると、ななめにジャンプします。
二段三段ジャンプ
このスクリプトでは、二段ジャンプ三段ジャンプができます。
これを禁止したい場合はそのための処理を入れる必要があります。
簡単に、Y軸方向の速度がゼロの時だけ(つまり地面に立っている時だけ)ジャンプできることにしましょう。
これだと、厳密にはジャンプの頂点でキャラクターが止まっている瞬間も二段ジャンプ可能ですので、スペースキーを押したときに「地面に触れていたら」ジャンプする、という条件の方が良いかもしれません。