总结
我正在为不同的设备创建一个 SpriteKit 游戏,我想知道不同 Assets 的大小应该是多少。
我现在拥有的
我正在 viewDidLoad
中创建 SKScene
:
scene = GameScene(size: view.bounds.size)
scene.scaleMode = .AspectFill
我不想使用 viewWillLayoutSubviews
因为它在启动时被调用两次,而且每次设备旋转时也被调用。我不认为在这里初始化场景是个好主意。
使用此配置,我的 View 初始化为 600 点的宽度(默认 Storyboard大小),然后重新调整为设备宽度。在布局 View 后使用 println(scene.size.width)
它在 iPhone 6 中显示 375 点大小,在 iPhone 6 Plus 中显示 414 点大小。
我正在使用 xcassets 提供背景图像,我想知道应该使用哪种尺寸。我当前的配置已准备好支持 320 点分辨率(iPhone 4、iPhone 5)
- 1x:320 像素
- 2x:640 像素
- 3x:960 像素
问题
问题是图像将在以下设备中重新缩放:
- iPhone 6:750 像素 - 375 点
- iPhone 6 Plus:1242 像素 - 414 点
- iPad:768 像素 - 768 点
- iPad 视网膜:1536 像素 - 768 点
我想知道我应该如何配置图像和 SKScene 大小以针对所有设备对其进行优化。
最佳答案
如果你不想初始化场景两次,你可以只初始化一次:
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = YES;
skView.showsNodeCount = YES;
skView.showsDrawCount = YES;
skView.showsPhysics = YES;
skView.ignoresSiblingOrder = YES;
if(!skView.scene){
// Create and configure the scene.
GameScene * scene = [GameScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[skView presentScene:scene];
}
}
关于ios - SpriteKit 正确的 Assets 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939159/