2016-08-13 117 views
0

我正在研究一個幾乎完成的小遊戲。事情是它沒有任何菜單或遊戲超過屏幕等。所有過去都是在一個單獨的類遊戲中,它具有所有的邏輯和渲染。爲了使菜單成爲可能,我創建了一個State類,現在有一個StateGame,StateMenu ......問題是我不知道如何將一個狀態切換到另一個狀態。目前國家班級有一個方法switchTo: (State*)new state。在該方法中我把:如何在Objective-C中將一個對象轉換爲另一個對象?

[self release]; 
self = newState; 

這將產生一個段錯誤,我把它改成:

State *old = self; 
self = newState; 
AUTORELEASE (old) 

這根本不起作用。

很抱歉的格式,但我在手機上打字,反正,任何幫助將不勝感激

+0

如果沒有更多定義這裏描述的類的代碼,太難回答了。 – danh

+0

只要我回家,我會發布類定義,謝謝你的快速回復 – Paskaler

回答

1

好吧,你可能不想要「的對象更改爲另一個」 ...(不推薦的方式,自我= ...壞主意:[)

你會想要的是一個新的類稱爲,即GameManager。它將擁有一個屬性,可以是遊戲,菜單或GameOver實例。它將作爲狀態機工作(對狀態變化執行操作),並根據狀態顯示遊戲,菜單或GameOver屏幕。

+0

謝謝!我這樣做是爲了讓國家自己不能從一個轉換到另一個。它現在的作品,它更有意義 – Paskaler

+0

你可以標記問題解決請,謝謝:) –

相關問題