【enchant.js】Hello Physical World vol.5【box2d】
「Hello Physical World」第5回目。今回は Sprite に加える applyImpulse を取り上げます。
box2d.enchant.js には Sprite に力を加える関数が3つ用意されています。
継続的な力を加える applyForce、継続的な回転力を与える applyTorque、そして今回取り上げる applyImpulse は Sprite に瞬間的な力を加えます。
それではリファレンスを確認しましょう。
applyImpulse(impulse) 瞬間的な力を加える Parameters: {b2Vec2} impulse 加える力のベクトル
加える力のベクトルが引数として必要ですね。
b2Vec2 は Box2D で扱うベクトルです。
var vecter = new b2Vec2(0, -1);
という感じで求めます。第一引数は x 軸に加える力、第二引数は y 軸に加える力です。
それでは実際にコードを書いてみましょう。
画面をタップすると、ボールが下から上に等速運動で飛んでゆくのがわかると思います。
b2Vec2 に与える第一引数に、1 を入れてみて下さい。
var vecter = new b2Vec2(1, -1);
今度は右上に等速運動で飛んでいきますね。-1 を入れたら右下に向かって飛んで行きます。
ところでこのコード、重力を設定していません。重力を設定したらどうなるでしょうか。
world = new PhysicsWorld(0.0, 9.8);
おっと! リンゴがどんどん落ちていきますね。ここは落ち着いてタップ! タップ!! タップ!!!
これだけでも十分なゲームになりますね。
では、せっかくなのでちょっとしたゲームを作ってみましょう。
リンゴをゲーム画面から出さずに、向かってくるドクロを避け続けるゲームです。
作りこめば、もっと面白いものができると思いますよ。