0

私はAS3でゲームを作っています。虫姫さま(iOSのバグプリンセス)、怒首領蜂、東方シリーズなどのゲームから多大なインスピレーションを得ています。それは主に、プレイヤーに一度に膨大な数の弾丸(時には数百の弾丸)をかわさせながら、多数の敵やボスを倒すことを中心に展開します。

私のゲームの各「弾丸」は、開始位置、x速度、y速度、移動動作、色、サイズなど、いくつかのパラメーターを取ります。これらの弾丸を「発射」する各関数は、弾丸の発砲点、発射する初期角度、発射する弾丸の数、発射する数、発射速度、発射を停止するタイミングなどのパラメーターを取ります。

私の方法のいくつかの大きな制限は、弾丸単一の点から来なければならず、それらの開始点がxまたはyでオフセットできないこと、すべての弾丸が指定されたパスをたどり、指定された方法で動作する必要があり、それらをに追加できないことです。親のいないステージ。

誰かがこれらのゲームの知識と同様の「火」関数を作成するための最良の方法を知っているなら、私はあなたのアドバイスを大いに感謝します。

編集:このゲームについておそらく重要なもう1つのことは、弾丸がすべてコードで描かれていることです。

4

2 に答える 2

0

1つの解決策は、弾丸のタイプと軌道に関する情報を含むタイプのパラメーターを受け取るShotManagerメソッドを持つことができるクラスを作成することです。クラス内では、弾丸の種類に応じて弾丸の位置を更新できます。ShootBulletShotManager

弾丸の描画は、現在の弾丸とその位置のリストをから読み取り、ShotManagerこれらをいくつかのSpritesまたはビットマップの描画と照合することによって、個別に処理されます。

于 2012-06-10T23:32:08.097 に答える
0

単一のクラスに多数のパブリック関数があり、その多くのパラメーターを渡すことは管理しやすいソリューションのようには思えないため、おそらくリファクタリングを行うことをお勧めします。

ShotPatternまず、基本クラスまたはインターフェイスを作成します。クラスは、ショットパターンのタイプまたはカテゴリごとにそれを拡張または実装します。弾丸を発射する方法とタイミング、および発射する弾丸の種類のロジックは、によって処理されますShotPattern。また、発射後ShotPatternのsに影響を与えBulletたり、方向や速度を変更したり、さらにBulletsを生成して分割効果を作成したりすることもできます。

sのコンストラクターは、ShotPatternまだいくつかのパラメーターを取ることができます。目標は、繰り返しを減らし、弾丸生成ロジックの大部分をインスタンスの内部に保持することです。関数のfuncパラメーターFireAroundArcは巧妙であり、パラメーターとしてShotPattern他のを必要とするを作成することによって同じアイデアを使用できShotPatternます。

の各インスタンスは、そのsをEnemy追跡する必要があります。これにより、sが追跡されます。これにより、特定の敵が発射した弾丸をクリアすることができ、弾丸の作成パターンが敵と一緒に移動する可能性があります。ShotPatternBullet

実際に敵の攻撃パターンを設計するという点では、多くの可能性があり、それは非常に制限のない問題です。堅牢なアーキテクチャを持つことは重要であり、既存のコードをそれほど変更することなく複雑さを増すことができますが、興味深く、多様で、やりがいのあるパターンを作成するという一般的な問題は、StackOverflowの質問の範囲を超えています。

于 2012-06-12T20:12:57.360 に答える