2015-04-07 218 views
-1

我使用spritekit来制作iOS游戏,并且遇到了我以前从未遇到的问题。我希望我的游戏可以在多个设备上使用,因此我将根据屏幕大小动态调整所有尺寸,我使用UIScreen.mainScreen().bounds.size获取屏幕尺寸,这是在线推荐的。获取屏幕大小XCode

它返回的屏幕尺寸为667x375。但是,当我将对象放置在高度的一半和宽度的一半时,期望在屏幕中间看到它时,它将显示在左下角。

好奇,我从鼠标点击打印触摸位置,发现点击右上角返回1024x764。

我从来没有遇到过这个问题,这是我的第三个XCode项目。谁能帮我?

回答

1

UIScreen.mainScreen().bounds.size返回您的屏幕的大小

Sprite Kit使用与UIView不同的坐标系。场景的左下角是(0, 0)。这些值随着向上和向右移动而增加,因此右上角会为您提供最大值。

根据scaleMode属性缩放场景内容以适合视图。我建议你重新阅读Building Your Scene documentation

+0

好的,谢谢。只是为了澄清未来的读者,因为我发现这个解释令人困惑,这里是我发现的: Aaron正确地指出问题是由坐标系统的变化引起的。扔我的东西是我从未改变场景的坐标系。 进一步挖掘发现,只有当模拟器设置为iPhone 6设置时才会出现此问题。 由于某些原因,在iPhone 6模拟器设置中,场景使用与屏幕不同的大小进行初始化。我不知道为什么会出现这种情况,但知道这是事实,我可以解决它。 – fiicere