スーパーマリオのようにキャラクターを動かすプログラムをUnityとScratchで作りました。

Unityは物理エンジンがあるので、ジャンプや着地、地面との衝突の挙動は、ほぼ自動で組み込むことできます。

一方スクラッチは、物理エンジンがないので、物理的な挙動や衝突処理を手作りすることになり、完璧なものを作るのは結構難しいです。

今回、Scratchでこういった動かし方をどう作るかをgriffpatchさんの動画で勉強しました。
衝突時にどうやって壁や地面に埋まらないようにするか、ジャンプしたときに屋根にくっついてしまうバグをどう直すかなどのノウハウは、本当になるほど!ってなります。

Code a Platformer Game 1
Code a Platformer Game 2

そしてこれらを参考にしつつ自分でも思うように初めから作ってみたのが、こちらです。

メインのコードはこんな分量ですが、griffpatchさんのノウハウが詰まっています。

このあとUnityでも同じようなものを作ってみて違いを確かめました。

Unityでは物理演算は必要ないですが、キーコントロールやアニメーションの部分のコードが必要になります。
こちらは、「楽しく学ぶUnity2D超入門講座」を参考にして
こんな感じになりました。

ある程度のコードはありますが、ノウハウは少ないのでscratchよりはだいぶ楽です。