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