在iOS中的自定义类中获取SKView大小

时间:2013-10-08 16:24:07

标签: ios sprite-kit

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

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

有更优雅的方法吗?谢谢。

2 个答案:

答案 0 :(得分:2)

您可以在Player类中使用[UIScreen mainScreen].bounds。查看applicationFrame的{​​{1}}和scale属性。

您可能会认为让UIScreen知道屏幕尺寸首先不是优雅的,但是这是一种方法,可以在不将信息传递到Player的情况下完成。

答案 1 :(得分:0)

您只需从SKNode派生玩家类。然后,您可以将其添加到场景层次结构中,然后您可以引用该场景。

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

从MVC的角度来看,“播放器”是模型,事实上它不应该知道屏幕尺寸,因为这是一个视图属性。也许你只是向后退了,你真的想在视角那边用播放器类中的信息做些什么?