答案 0 :(得分:1)
首先,总共会发生多少次削减?可以产生多少独立的块? 10? 100?在实施任何这些之前,请测试在iPhone或iPod touch上移动该数量的对象。仅仅因为它在模拟器上工作并不意味着它在实际设备上足够快。
其次,如前所述,游戏图形和物理库可以为您完成大量工作。 Cocos2D似乎是一种流行的选择,它结合了OpenGL绘图和相对容易访问的物理库。
无论如何,要做自己的绘图,这里有以下选择:
将所有图形移动到OpenGL中。这不应该掉以轻心 - 你在Cocoa Touch中失去了很多工作的便利性。您还可以最大程度地控制图形和动画,如果您花时间进行优化,则可以获得最流畅的性能。
只有一个UIView,为每个独立的块添加CALayer
个子层到其主层。 CALayers专为快速移动和合成而设计。但是,如果您正在运行物理模拟,那么您的第一步就是删除它们的动画行为。 This tutorial series可能有用。
每个块都有一个单独的UIView
。这将与使用CALayers具有相似的性能,因为UIViews实际上是使用CALayer绘制的。此选项将占用更多内存(您至少拥有与之前一样多的图层和更多视图),但您拥有CALayers的所有功能以及一些更易于查看的绘图选项。
只有一个UIView
,并在drawRect
方法中绘制每个块。这可能看起来很容易实现,但几乎肯定会太慢。
如果可能的话,测试这些中的每一个。在继续使用切割和物理部件之前,在减速到太远之前,您可以在屏幕上设置多少个块?你可以制作游戏吗?记住你的物理系统会在游戏运行时减慢速度。