シューティング用プチエンジン
シューティングゲーム用の、プチライブラリを作ってみました。
敵の移動パターン、思考パターン、敵弾パターンが登録されていて、呼び出し側にそれらの任意の組み合わせの敵キャラを、
1体ずつ任意のフレームで指定の座標に発生させることができるようになっています。
それ以外に必要な処理である、自機や敵、弾との衝突消滅判定や、自機の攻撃パターンなどがデフォルトで実装されています。
ライブラリの仕様(搭載されているパターン)
敵AIモード4種 0:なし, 1:ノーマル回避, 2:大回避, 3:超回避 敵移動パターン16種 1:直線降下, 2:低速降下, 3:待機, 4:サイン波(左) 5:サイン波(右), 6:急旋回, 7:低速降下・反転, 8:急降下・急反転 9:高速斜め横断, 10:ホバー・スライダー, 11:クローバー・ループ, 12:ホーミング・ダッシュ 13:ホーミング・ダッシュ用, 14:バックスタブ, 15:目の前を塞ぐ, 16:ワープ 敵弾パターン8種 0:8WAY, 1:狙撃, 2:2WAY, 3:3WAY, 4:5WAY, 5:3連射, 6:十字, 7:蛇行 自機弾パターン3種 0:3WAY, 1:ウェイブ, 2:前方高速連射
ライブラリの使い方
5つの外部呼出し用関数が定義されています。
InitGameSession| 初期化用の関数で、引数や戻り値はありません |
OrderSpawnEnemy(enemies, enemy_count, ai_mode, state, x, y, shot_type)
| 敵発生用の関数です |
MovePlayerAndShoot(key_flags, p_x, p_y, p_speed, shot_timer, weapon_mode)
| 自機の移動と自機弾発射用の関数です |
UpdateGameObjects(enemies, enemy_count, stage, player_x, player_y, score, lives, weapon_mode)
| 自機や敵との衝突判定、敵の移動パターン、思考パターンが登録されている関数です |
GetRenderData(p_inv, pb_f, pb_x, pb_y, eb_f, eb_x, eb_y)
| 最新座標一括回収用の関数です |
ダウンロード
下のリンクからファイルをダウンロードできます。
petit_shoot.zip ※ZIP形式で圧縮されてるので、使う前に解凍してね!
使用ライブラリについて
本DLLは GNU Compiler Collection (gfortran) を使用してビルドされています。
これに含まれるランタイムライブラリには、GCC Runtime Library Exception が適用されています。