0

カメラ ビューを使用するゲームがあり、敵が画面の周りを飛んでいます。次に、選択した武器を使用して敵を撃ちます。現時点では、敵がアニメーション化されている 4 つの UIImageView があります。画面上に各敵の複数のインスタンス (4 つあります) を表示し、時間とともにより多くのスポーンを表示したいと考えています。これを行う最善の方法は何ですか?

これは、ジャイロを使用して 1 つの敵を動かすコードの一部です: (enemyCyborg は UIImageView です)

valueX4 = gyroData.rotationRate.y* 30;
         valueY4 = gyroData.rotationRate.x* 40;

         int newX4 = (int)(enemyCyborg.center.x +valueY4);
         int newY4 = (int)(enemyCyborg.center.y -valueX4);

         CGPoint newCenter4 = CGPointMake(newX4, newY4);

         enemyCyborg.center = newCenter4;

そして、それらはその中でランダムに動いています:

- (void) moveCyborg {

[UIView animateWithDuration:1.0f animations:^{
    int fromNumber = -30;
    int toNumber = 60;
    int randomNumber = (arc4random()%(toNumber-fromNumber))+fromNumber;
    //Move the image view to 100, 100 over 10 seconds.
    enemyCyborg.frame = CGRectMake((int)(enemyCyborg.center.x -randomNumber), (int)(enemyCyborg.center.y -randomNumber), enemyCyborg.frame.size.width, enemyCyborg.frame.size.height);
}];
}

これは、UIImageView を撮影から隠した後、再び表示します。

- (void) showCyborg {

enemyCyborg.hidden = NO;
enemyCyborg.center = CGPointMake((arc4random()%SCREEN_HEIGHT),(arc4random()%SCREEN_WIDTH));
enemyCyborg.animationImages  = cyborganim;
enemyCyborg.animationDuration = 0.6;
enemyCyborg.animationRepeatCount = 0;
[enemyCyborg startAnimating];

}
4

1 に答える 1

1

敵モデルをカプセル化するオブジェクトを作成し、ある種の敵ジェネレータ関数を使用してそれらのオブジェクトをスポーンする必要があります。このジェネレーター関数は、クラス関数として記述される場合があります。

一般的な提案を次に示します。

1) ブロックベースのアニメーション方法を使用しています。ブロックは良いアプローチですが、パフォーマンスや、追加する予定の敵やその他の視覚要素の数によっては、あらゆる種類の機能を提供するCocos2dの使用を検討することをお勧めします。Ray Wenderlich が cocos2d チュートリアルの紹介を公開しています。ここにリンクしてください。iPhone 向けのゲームの多くは、cocos2d または Unity を使用して作成されています。

2)まだ行っていない場合は、 https://gamedev.stackexchange.com/でさらに基本的な例を確認してください。

于 2012-12-08T00:50:43.230 に答える