0

我有一个使用相机视图的游戏,并且有敌人在屏幕上飞来飞去。然后,您使用您选择的武器射击敌人。目前我有 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,在它被隐藏后拍摄它:

- (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 回答