弾丸が絡むゲームを作っています。その機関銃なので、同時に複数の弾丸が画面に表示されます。1つの弾丸のプロパティとアクションのコードを記述し、1つの弾丸の複数のインスタンスのように、それらすべてに適用するにはどうすればよいですか?
2 に答える
サブクラス化を試しましたUIImageView
か? そうすればcreateBullet
、サブクラスを作成UIImageView
して画面に追加する関数を持つことができ、サブクラスにはアニメーションなどのための関数とプロパティを含めることができます...
ゲームを作成する際の重要なポイントは、スプライトの概念です。つまり、グラフィカルな表現を持ち、動き回ることができる軽量のオブジェクトです (衝突の管理など)。
Core Animation を使用して CALayers の上にスプライトを実装しようとするか、 Cocos2D のようなゲーム フレームワークを使用することを決定することができます。
最初のアプローチについては、この短いチュートリアルをご覧ください。これは、UIImageViews を使用してスプライトを実装する場合にも役立ちますが、CALayer は軽量であり、UIView はそうではないことに注意する必要があります。
弾丸を複製するという問題に関しては、基本的に重要な提案は、メモリ内の同じ画像を複数回複製することを避けるために、何らかの形式のキャッシュを使用することです。UIImage
便利なコンストラクターを使用すると、クラスで非常に基本的なキャッシュ メカニズムを使用できますimageNamed
。
繰り返しになりますが、優れたパフォーマンス (40 ~ 60 fps など) の本格的なゲームを作成する場合は、Cocos2D を使用することをお勧めします。Cocos2D は、シンプルなインターフェイスにラップされた Open GL グラフィックスのすべての機能を提供します。