カメラ ビューを使用するゲームがあり、敵が画面の周りを飛んでいます。次に、選択した武器を使用して敵を撃ちます。現時点では、敵がアニメーション化されている 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];
}