前回の続きです。
キャラを動かしたい
いつまでもflappy birdベースのままではマリオにならない。
手を加えていきたいと思います。
前回言っていた
・自分で動きたい(今は土管が向かってくることで動いているように見えているだけ)
をやりたいと思います。
今の実装では、どうも、どのキーを押してもジャンプする模様。
左右行くためには、矢印キーそれぞれが押されたかどうかを判断できないといけません。
moveUp関数の中で、以下のコードを追記してみて、
テスト的に出していたログ出力を今回のものだけにしました。
let key = '';
switch (e.key) {
case 'ArrowUp':
key = '↑';
break;
case 'ArrowDown':
key = '↓';
break;
case 'ArrowLeft':
key = '←';
break;
case 'ArrowRight':
key = '→';
break;
}
console.log('key: ' +key);うまくいったようです。
では、右、左、それぞれ押したときに、鳥のX座標を加算、減算できるように
フラグを追加します。
var flgLeftPress = 0; var flgRightPress = 0;次に、キーボードの入力部分で、左右キーを押したときにフラグをON(=1)にします。
switch (e.key) {
case 'ArrowUp':
if(flgJumping == 0){
flgJumping = 1;
jInc = JFIRST;
}
key = '↑';
break;
case 'ArrowDown':
key = '↓';
break;
case 'ArrowLeft':
key = '←';
flgLeftPress = 1;
break;
case 'ArrowRight':
key = '→';
flgRightPress = 1;
break;
}
最後にdraw関数の中で、左右キーを押したらそれぞれ10だけ動くように、bX変数の値を増減させます。
増減させた後は、フラグをOFF(=0)に戻しておきます。
if(flgLeftPress == 1){
bX -= 10;
flgLeftPress = 0;
}
if(flgRightPress == 1){
bX += 10;
flgRightPress = 0
}一応動きましたが、右と上同時押しで右斜めにジャンプできない、、、、
まだ改良が必要のようです。
あと、ソースがごちゃごちゃしてきたので、いつか整理したい、、、、
今回のソースはこちら。

