2021年11月14日日曜日

javascriptでマリオを作る part3

 

前回は、一回ジャンプしたら、着地するまでは再ジャンプできない、をしました。


今回は、いよいよ「ジャンプらしい動き」にしていきたいと思います。


と、その前に。


ゲーム開始時の、鳥の位置がいつも上なので、着地するまで時間がかかっていました。


ほぼ地面から始めたほうが、ジャンプの確認がすぐできるので修正します。


    var bY = 230;  //鳥の表示位置


これ以上増やすと地面にめり込んでしまったのでこれくらいにします。


さあ、次は「ジャンプらしい動き」です。


処理イメージ的には、ジャンプした瞬間は早く動いて、頂点に行くほどゆっくり動く感じです。


高校の物理でならう、自由落下の計算をつかうとか、


会社の先輩でゲーム制作されていた方が、三角関数を使って疑似的にジャンプの動きを作られていたのを見ていたのですが、


もうちょっと簡単にできないものか、、、


現状は「25」だけ引いて(上に上がって)から

「1」ずつ足していく(下に降下していく)


これを、最初は大きく動くが、頂点に行くにつれて少なくなるような、、、


そう、こんな感じ。

いろいろ直して直して、、、やっとできたのがこちら


ひどい、、、ひどすぎるソースです。

でもいったん動いたので共有します。

傷だらけでも先に進まないと、、、やらなくなってしまいそう。

今回やっていて気になったのが

・ジャンプの動きが速すぎる
・自分で動きたい(今は土管が向かってくることで動いているように見えているだけ)
・障害物を出して乗ってみたい
・ソースをきれいに(もっと短くかけそう)

です。