2013-10-08 19 views
3

我試圖用iOS上的Sprite Kit製作遊戲。我有一個帶有SKView的UIViewController,我正在使用一個SKScene。在iOS的自定義類中獲取SKView大小

現在在我的場景中,我正在初始化一個'Player'類,它只是我寫的一個自定義類,它是NSObject的一個子類。問題是我需要知道屏幕尺寸是在我的自定義類中。從我所知道的,知道我的自定義類中屏幕大小的唯一方法是從Player初始化程序的場景中傳遞它。

有沒有更好的方法來做到這一點?謝謝。

回答

0

你可以簡單地從SKNode派生玩家類。然後,您可以將其添加到場景層次結構中,然後您可以參考該場景。

你仍然可以擁有一個「模型」類,其中包含玩家數據和存儲在自定義玩家節點類中的方法。

從MVC的角度來看,作爲模型的「玩家」實際上並不需要知道屏幕尺寸,因爲這是一個視圖屬性。也許你只是有這個倒退,你真的想在視圖方面做一些與球員類的信息?

+0

我想要做的是讓玩家圍繞屏幕中心點定義軌道。當玩家點擊屏幕右側時,玩家從一個軌道(半徑50px)轉換到下一個軌道(半徑100px)。正如你所說,也許我應該重新考慮我的結構,謝謝! – Flubadoodoo

2

您可以在您的Player類中使用[UIScreen mainScreen].bounds。請檢查UIScreenapplicationFramescale屬性。

你可能會爭辯說,擁有一個Player知道屏幕大小並不優雅,但儘管如此,這是一種不通過信息傳遞到Player的方法。

+0

是的,我會考慮你說的,謝謝! – Flubadoodoo

相關問題