我有一个使用相机视图的游戏,并且敌人在屏幕上飞舞。然后你用你选择的武器射击敌人。目前我有4个UIImageView,其中敌人是动画的。我希望屏幕上有每个敌人的多个实例(有4个),并且随着时间的推移产生更多。这样做的最佳方式是什么?
这是使用陀螺仪移动一个敌人的代码的一部分:(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之后再次显示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];
}
答案 0 :(得分:1)
您需要创建封装敌人模型的对象,并使用某种敌人生成器函数生成这些对象。此生成器函数可能是作为类函数编写的。
以下是一些一般性建议:
1)您正在使用基于块的动画方法。块是一种很好的方法,但根据您的性能以及您计划添加的敌人和其他视觉元素的数量,您可能希望使用Cocos2d来提供各种功能。 Ray Wenderlich发表了一篇很棒的cocos2d教程介绍,可以让你快速上手。链接到here。许多iPhone游戏都是使用cocos2d或Unity编写的。
2)如果您还没有这样做,请检查https://gamedev.stackexchange.com/以获取更多基本示例。