游戏设计 - 重用对象属性?

时间:2010-07-01 16:24:31

标签: iphone xcode

我是Obj C的新手,但在Flash中开发了许多类型的游戏。我有多个正方形(UIImageViews)具有完全相同的属性;

  • 可以检测到碰撞(转换为CGRect)
  • 可以有背景图片(image.png)
  • 可以在自身上设置一个int变量来设置state(0-3)
  • 可以是由另一个int变量(0-3)
  • 表示的一种方形

在Flash中我可以创建一个movieClip实例并在该实例上定义它的属性。然后我可以复制实例并给它不同的名称。现在,所有实例都可以根据游戏中自己的状态设置自己的属性。

如何在OBJ C中执行此操作。有没有办法定义一个对象,比如UIImageView * square也有CGRect.frame,.background属性,int状态变量和int类型变量?然后,如果我创建一个实例并将其命名为square_01,square_02等......这可能吗?

我现在设置它的方式看起来像一个巨大的属性列表,因为我必须为我知道我要创建的每个方块创建一个UIImageView,一个CGRect和两个int vars。我想重构和简化,以便我的代码不会失控,因为我觉得情况已经开始出现。

提前致谢,

1 个答案:

答案 0 :(得分:0)

在Flash中,MovieClip(或子类)的实例与标准对象的作用略有不同。它们基本上被设计成充当“世界”的元素,可以说,以你想要的方式,能够包含除了图像表示和放置之外的许多附加信息。

UIImageView没有这样的东西。它意味着在屏幕上的某个位置显示图像,这就是全部。而不是尝试像Flash MovieClip一样对待它,尝试创建一个单独的类(例如,WorldElement)。给这个类变量来存储你提到的所有数据。然后给它一个方法,它将以某种方式将此信息转换为可查看的形式。例如,您可以让方法创建UIImageView并将该视图传递给存储在WorldElement实例中的图像。