2021年11月27日土曜日

javascriptでマリオを作る part6

 

前回の続きです。


右上ジャンプがなんとなくできたのですが、まだまだ「マリオ」らしくありません。


プログラミングの世界で、現実世界っぽく動かすのはいろいろ工夫が必要ですね。。。


結局いろいろ修正しないと改善しない、、、


今回は修正箇所の主な部分をご説明して、ソースを添付します。


1.加速度は小数で微調整

方向キーを外した時に慣性の法則+摩擦力っぽく、動くゆっくり止まるものが作りたかったのですが、加速度を管理する変数に、「小数点で加減算する」

もともと加速度を管理する変数時は整数値を代入して試していましたが、

これがハマりポイントでした。

どうしても動きが荒くなり、動きが速すぎて画面外に出たりしていました。

よって、以下のspeed_x 変数のように、小数点を含んだ数値を扱うことで

荒い動きは改善されました。


if(speed_x>=1){

    speed_x -= 0.5;

}else if(speed_x <= -1){

    speed_x += 0.5;

}else{


2.左右の動きは、スピードが落ち着くまではフラグを変えない

左右のキーを押したとき、すぐにフラグをOFFにしていました。

加速を考えない動きであればそれで事足りるのですが、

ゲームとなると話は別です。

今回は、スピードが0になったとき、左右のフラグもOFFにしました。

「ジャンプ中」を判定する変数は複数存在しており、
見づらかったので整理しました。

今回の動きはこちらとなります。



最後のほうでやっと斜めジャンプができました。

ソースはこちらです。