【问题标题】:Correctly implement the blocks in the drawing view正确实现图纸视图中的块
【发布时间】:2012-04-13 08:06:32
【问题描述】:

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

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

【问题讨论】:

  • 我觉得我不太明白你在问什么,但不妨看看box2d.org
  • 我问,绘图块有什么更好的用途,然后为它们制作动画。
  • 查看NSBezierPath
  • 块将成为图像。

标签: objective-c ios uiimageview uiimage draw


【解决方案1】:

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

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

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多