屏幕上有一个UIImageView的多个实例

时间:2012-06-25 19:01:40

标签: ios cocoa-touch sdk

我正在制作一个涉及子弹的游戏。它是机枪,因此屏幕上同时会有不止一颗子弹。如何为一个项目符号的属性和操作编写代码并将其应用于所有项目,例如一个项目符号的多个实例?

2 个答案:

答案 0 :(得分:1)

您是否尝试过继承UIImageView?这样你就可以创建一个函数createBullet来创建一个子类UIImageView并将它添加到屏幕上,在子类中它可以包含动画等的函数和属性......

答案 1 :(得分:1)

制作游戏的关键是 sprite 的概念,即一个轻量级的对象,它具有图形表示,你可以四处移动(管理碰撞等)。

您可以尝试使用Core Animation在CALayers上实现精灵,或者您可能决定使用像Cocos2D这样的游戏框架。

对于第一种方法,请查看this short tutorial。如果你想使用UIImageViews实现你的精灵,这也可以帮助你,虽然你必须记住CALayer是轻量级的,UIView不是,所以如果你计划有很多可以有所作为。

关于复制子弹的问题,基本上关键的建议是使用某种形式的缓存,这样你最终不会多次在内存中复制相同的图像。如果使用便捷构造函数UIImage,则imageNamed类可以使用非常基本的缓存机制。

同样,如果您打算制作性能良好(比如40-60 fps)的完整游戏,最好的建议是使用Cocos2D,它将为您提供包含在简单界面中的Open GL图形的所有功能。