2010-07-01 63 views
2

我是Obj C的新手,但在Flash中開發了許多類型的遊戲。我有多個方塊(UIImageViews)具有完全相同的屬性;遊戲設計 - 重用對象屬性?

  • 可碰撞檢測(換算成的CGRect)
  • 可以具有背景圖像(image.png)
  • 可以設置一個int變量在其自身上以設置狀態(0-3)
  • 可以是一種由另一個int變量表示的正方形(0-3)

在Flash中,我可以創建一個movieClip實例並在該實例上定義它的屬性。然後我可以複製實例並給它不同的名稱。現在所有的實例都可以根據遊戲中自己的狀態設置自己的屬性。

如何在OBJ中做到這一點。有沒有一種方法來定義一個對象,就像還有一個CGRect.frame,一個.background屬性,一個int狀態變量和一個int類型變量的UIImageView *方塊?然後,如果我創建一個實例並將其命名爲square_01,square_02等...這可能嗎?

我現在設置的方式現在看起來像一個巨大的屬性列表,因爲我必須爲每個正方形創建一個UIImageView,一個CGRect和2個int變量,我知道我將創建它。我想重構和簡化,以便我的代碼不會失去控制,因爲我覺得已經開始成爲現實。

由於提前,

回答

0

在Flash中,影片剪輯(或子類)的實例作用有點不同於標準的對象。它們的設計基本上可以充當「世界」的元素,可以按照自己的方式進行操作,並且能夠包含除圖像表示和放置之外的大量附加信息。

UIImageView沒有這樣的事情。它是爲了在屏幕上的某個位置顯示圖像,就是這樣。不要嘗試像Flash MovieClip一樣對待它,請嘗試創建一個單獨的類(例如WorldElement)。給這個類變量存儲你提到的所有數據。然後給它一種方法,它將以某種方式將這些信息轉換爲可查看的形式。例如,您可以讓該方法創建一個UIImageView並將該視圖傳遞給存儲在WorldElement實例中的圖像。

+0

我意識到UIImageView是IB中的一個容器。我想我正在尋找的是上面給出的課堂解釋。有沒有一個類文件的簡單例子,它在xcode中的實現?我認爲我在正確的軌道上,我只是需要看到一個正確的語法例子,等等...... – Damonmath 2010-07-01 16:41:56

+0

你可能想看看這個:http://developer.apple.com/mac/library/documentation/可可/概念/的ObjectiveC /用品/ ocDefiningClasses.html#// apple_ref/DOC/UID/TP30001163-CH12-SW1。 – tlayton 2010-07-01 16:49:23

+0

是的!這正是我期待的! – Damonmath 2010-07-01 20:34:29