目次:
車のディーラーは、あなたの乗り物に武器を取り付けることに手をつけていますが、それが人々がゲームプログラマーになる理由です。だから、あなたのHTML5ゲームオブジェクトにミサイルを追加することができます。あなたのミニバンにミサイルが欲しいなら、あなたはミサイルを持っているでしょう(少なくとも仮想ミニバンでは)。ビデオゲームの多くは撮影を伴うもので、それはかなり簡単に追加できます。
あなたのゲームの射撃の基礎
ミサイル、弾およびその他の弾丸は、操作が簡単です。ここに留意すべきいくつかのアイデアがあります:
-
発射物はスプライトです。 発射体に新しいスプライトを作ります。シンプルな点にするか、完全なミサイルを描くことができます。
-
ミサイルのカスタムスプライトを作成します。 ミサイルにはいくつかの方法が必要なので、カスタムスプライトにすることもできます。
<! - 2 - > -
ミサイルが画面から離れると死ぬ。 この動作を取得する最も簡単な方法は、ミサイルのboundActionをDIEに設定することです。
-
fire() メソッドを追加します。 fire()メソッドは、ミサイルが発射されたときにアクティブになります。 同じミサイルを何度も繰り返し使用します。
-
古いミサイルは決して死ぬことはない。それらは隠され、ユーザーが再び撮影するときに再利用されます。ミサイルが何かを打つと、ミサイルを隠す。そうすれば、目に見えなくなり、衝突することもありません。 <! - 3 - >
ゲームミサイルの起動方法
ミサイルのコード。 htmlはあなたが見た標準的な自動車コードのようなものです:
ミサイル。 htmlのvarのゲーム; var car; varミサイル;関数Car(){tCar =新しいスプライト(ゲーム、 "car。png"、50、30); tCar。 setSpeed(3); tCar。 setAngle(135); tCar。 checkKeys = function(){if(keysDown [K_LEFT]){これです。 turnBy(-5);} if(keysDown [K_RIGHT]){this。 turnBy(5);} if(keysDown [K_SPACE]){ミサイル。 ();}} //最後のチェックキーはtCarを返します}} //カーデフ機能を終了するMissile(){tMissile = new Sprite(game、 "missile.png"、30、20);
tMissile。隠す(); tMissile。 fire = function(){ これです。 show(); tMissile。 setSpeed(15); これ。 setBoundAction(DIE); これ。 setPosition(car。x、car。y); これ。 setAngle(car。getImgAngle()); これ。 setImage( "ミサイル.png"); これ。 setSpeed(15); } // end fire return tMissile;} // endミサイルdef関数init(){game = new Scene(); car = new Car(); ミサイル=新しいミサイル(); ゲーム。 start();} //終了するinit関数update(){ゲーム。 clear();車。 checkKeys();車。更新(); ミサイル。更新(); } //終わりの更新 発射体は構築するのが楽しく、以下のように難しくありません:
発射体を発射するための通常のスプライトを作ります。
-
これは絶対に必要なわけではありませんが、通常、銃から弾丸が発射され、矢が矢で弓なりに発射され、核バナナロケットがそのようなことをしている車両から発射されます。
発射体はそれ自身のスプライトになります。
-
弾丸は通常のスプライトと同じように機能しますが、動的に作成され、破壊されます。
ミサイルを発射するトリガを追加します。
-
車はミサイルを発射するので、トリガーコードは車のcheckKeysメソッドにあります。
ミサイルをデフォルトで隠すように設定します。
-
ミサイルはいつも周りにありますが、必要がなければステージの外に隠れています。スプライトのhide()メソッドを呼び出すと、そのスプライトはメモリに残っていますが、描画されず、衝突を引き起こすことはありません。
ミサイルのfire()メソッドを作成します。
-
ミサイルは活性化するのを待っている。 fire()メソッドはミサイルを動作させます。
発射体を見えるようにします。
-
show()メソッドはhide()の逆です。スプライトが表示され、衝突が発生します。
ミサイルに早い初期速度を与えます。
-
ご存じのように、ミサイルは通常速いです。
ミサイルが端に当たったら隠す。
-
ミサイルが画面の端に当たったら、それを隠す必要があります。ミサイルのboundActionをDIEに設定すると、この動作が自動的に行われます。
ミサイルが何かに当たったら、それを隠す。
-
この単純な例には他のオブジェクトはありませんが、ミサイルが何か他のものと衝突した場合は、そのhide()メソッドを呼び出して接触時に破壊されるミサイルをシミュレートします。
あなたは通常のミサイルの動作をした後、いくつかの面白いバリエーションを試すことができます:
ミサイルに重力を加えます。
-
サイド・スクローラーの場合は、ミサイルに重力を加えてワームのような効果を得ます。 他の物理学をミサイルに加える。
-
ミサイルに他のスプライトと同じようにドラッグさせることができます。 スマートミサイルを作る。
-
angleToメソッドを使用して、ミサイルとターゲットの間の角度を決定し、すべてのフレームでミサイルをターゲットに向けます。これは決して逃さないスマートミサイルをシミュレートします。 (偉大なパワーアップですが、あまりにも多くてもゲームが楽になります。) あまりスマートでないミサイルを作る。
-
敵がプレイヤーにミサイルを発射している場合、あなたはそれを非常にスマートにしたくありません。まず、ミサイルを遅くして追い越すことができるようにします。第二に、途中でミサイルを破壊する障壁を置く。第三に、ミサイルをしばらくのうちにスマートにして、ターゲットの位置を5または10フレームごとにチェックするようにします。
