随机敌人产卵

时间:2012-12-07 23:42:51

标签: iphone objective-c ios xcode ipad

我有一个使用相机视图的游戏,并且敌人在屏幕上飞舞。然后你用你选择的武器射击敌人。目前我有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];

}

1 个答案:

答案 0 :(得分:1)

您需要创建封装敌人模型的对象,并使用某种敌人生成器函数生成这些对象。此生成器函数可能是作为类函数编写的。

以下是一些一般性建议:

1)您正在使用基于块的动画方法。块是一种很好的方法,但根据您的性能以及您计划添加的敌人和其他视觉元素的数量,您可能希望使用Cocos2d来提供各种功能。 Ray Wenderlich发表了一篇很棒的cocos2d教程介绍,可以让你快速上手。链接到here。许多iPhone游戏都是使用cocos2d或Unity编写的。

2)如果您还没有这样做,请检查https://gamedev.stackexchange.com/以获取更多基本示例。