在图纸视图中正确实现块

时间:2012-04-13 08:06:32

标签: objective-c ios uiimageview uiimage draw

如何在图纸视图中正确实现块,以便它们可以在两个部分中切割线条。使用UIImageView还是UIImage?

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

其次,如前所述,游戏图形和物理库可以为您完成大量工作。 Cocos2D似乎是一种流行的选择,它结合了OpenGL绘图和相对容易访问的物理库。

无论如何,要做自己的绘图,这里有以下选择:

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

  2. 只有一个UIView,为每个独立的块添加CALayer个子层到其主层。 CALayers专为快速移动和合成而设计。但是,如果您正在运行物理模拟,那么您的第一步就是删除它们的动画行为。 This tutorial series可能有用。

  3. 每个块都有一个单独的UIView。这将与使用CALayers具有相似的性能,因为UIViews实际上是使用CALayer绘制的。此选项将占用更多内存(您至少拥有与之前一样多的图层和更多视图),但您拥有CALayers的所有功能以及一些更易于查看的绘图选项。

  4. 只有一个UIView,并在drawRect方法中绘制每个块。这可能看起来很容易实现,但几乎肯定会太慢。

  5. 如果可能的话,测试这些中的每一个。在继续使用切割和物理部件之前,在减速到太远之前,您可以在屏幕上设置多少个块?你可以制作游戏吗?记住你的物理系统会在游戏运行时减慢速度。