3

我正在尝试在 iOS 上使用 Sprite Kit 制作游戏。我有一个带有 SKView 的 UIViewController,并且我正在使用一个 SKScene。

现在在我的场景中,我正在初始化一个“Player”类,它只是我编写的一个自定义类,它是 NSObject 的子类。问题是我需要知道自定义类中的屏幕尺寸是多少。据我所知,在我的自定义类中知道屏幕大小的唯一方法是在 Player 的初始化程序中从场景中传递它。

有没有更优雅的方法来做到这一点?谢谢你。

4

2 回答 2

2

你可以[UIScreen mainScreen].bounds在你的 Player 类中使用。也可以查看 a 的applicationFramescale属性UIScreen

您可能会争辩说,Player首先知道屏幕尺寸并不优雅,但尽管如此,这是一种无需将信息传递到Player.

于 2013-10-08T16:39:53.810 回答
0

您可以简单地从 SKNode 派生播放器类。然后,您可以将其添加到场景层次结构中,然后您就有了对场景的引用。

您仍然可以拥有一个“模型”类,其中包含存储在自定义播放器节点类中的播放器数据和方法。

从 MVC 的角度来看,“播放器”是模型,它实际上不需要知道屏幕大小,因为这是一个视图属性。也许你只是把它倒过来,你真的想用播放器类中的信息在视图端做一些事情?

于 2013-10-08T16:59:10.553 回答