| 真っ直ぐ進むスプライト | |||||
敵や弾のように、随時登録するスプライトの場合、条件分岐でサブルーチンへ飛ぶ形で処理します。この前の項でも説明しましたが、es_setによる登録は一度行えば消える(消す)まで有効です。
まずes_newで未使用のスプライト番号を検索します。ここで指定する番号は前項で決めた表示の優先順位に従ってください。別に重ね合わせの順番なんか気にしないや〜いという方は何も考えずに0でいいでしょう^^; ただその場合「特定のキャラは画面上の表示数を制限する」といった作業が面倒になります。自機の弾なんかは画面上の表示数を決めておかないとゲーム性が崩れます。上記スクリプトの場合、スプライト番号501〜503は完全に自機弾専用になってます。こうすることで画面上に自機弾は3つ以上表示されないようになってます。 設置してから後は移動を制御しない(ずっと直進する)キャラの場合、最初に一回だけes_adirやes_aimやes_aposを行えば、あとはほったらかしでいいです。上記スクリプトの場合es_adirを使って画面上方向に直進するよう指示をしています。es_adirは下図のように下方向が0で、半時計回りに64段階の方向指定ができます。 ![]() つまりこの自機弾の場合32なので画面上方向に真っ直ぐ飛んでいくというわけです。これが例えば自機を狙う敵弾などの場合はこんな感じになります。
(mmx,mmy)は自機の座標です。たったこれだけの命令で狙い弾を撃たせることができます。めちゃめちゃ簡単でしょ?解剖記の敵弾の生成と移動のスクリプトと比較してみてください。はっきり言ってあの苦労はなんだったんだ?っていう感じです^^;
|