0

如何正确实现图纸视图中的块,以便他们可以将线分成两部分。使用 UIImageView 还是 UIImage?

在此处输入图像描述

切割后的块应该受到物理的影响。

4

1 回答 1

1

首先,总共会发生多少次削减?会产生多少个独立的块?10?100?在实施任何这些之前,请在 iPhone 或 iPod touch 上测试移动该数量的对象。仅仅因为它在模拟器上工作并不意味着它在实际设备上足够快。

其次,正如已经提到的,有一些游戏图形和物理库可以为你做很多工作。 Cocos2D似乎是一个流行的选项,它将 OpenGL 绘图与相对容易访问的物理库相结合。

无论如何,要自己绘制,以下是选择:

  1. 将所有图形移动到 OpenGL 中。这不应该掉以轻心——你会失去很多在 Cocoa Touch 中工作的便利性。您还可以最大程度地控制图形和动画,如果您花时间对其进行优化,则可以获得最流畅的性能。

  2. 有一个 UIView,CALayer为每个独立的块添加子层到它的主层。CALayers 专为快速移动和合成而设计。但是,如果您正在运行物理模拟,您的第一步将是删除它们的动画行为。 本教程系列可能很有用。

  3. UIView每个块都有一个单独的。这将具有与使用 CALayer 类似的性能,因为 UIViews 实际上是使用 CALayer 绘制的。这个选项会消耗更多的内存,(你至少有和以前一样多的层和更多的视图),但你拥有 CALayers 的所有功能以及一些更容易在视图上绘制的选项。

  4. 有一个, 并在其方法UIView期间绘制每个块。drawRect这看起来很容易实现,但几乎可以肯定它太慢了。

如果可能的话,测试每一个。在继续切割和物理部分之前,您可以在屏幕上设置多少块动画,然后它才会减慢太多?你能用它制作游戏吗?记住,你的物理系统在运行时会减慢游戏速度。

于 2012-04-13T09:45:41.937 回答