Scratchでアクションゲームを作る(重力)
アクションゲームとシューティングゲームの違いは何か・・
それは重力があるかどうかです。
↑を押す、アクションゲームもシューティングゲームも自機が画面上に移動します。
その後、アクションゲームは重力に従い、下に勝手に移動しますが、
シューティングゲームは特に下に移動しません。
重力は空中にいるときに発生します。
足場など着地しているときは発生しません。
足場がない → 空中にいる扱い → 重力あり
ジャンプ → 足場がない → 空中にいる扱い → 重力あり
こういった流れです。
つまり、空中にいるかどうかが重要になります。
重力は、つねに描画処理の中で繰り返して呼び出すようにする。
_is_landingという変数で着地しているかどうかを管理し、
スクロールは、指定した引数分、背景をスクロールさせます。
そうすることで、自動的に足場がなくなった際は、下に移動する処理が働く。
つまり、着地していなければ常に、重力がかかるような動きになる。