很抱歉,如果我已经问过这个问题,但我非常坚持,第一个问题是非常不清楚。在iPhone6模拟器上用SpriteKit创建了一个游戏,当运行其他大小的模拟器时,所有的东西都会失去对齐。我不使用任何。SKS,XIB或故事板。有没有办法以编程方式调整游戏的大小,以便所有屏幕大小都有正确的位置?如有必要,将发布代码。
编辑:GameViewController:
import UIKit
import SpriteKit
var sceneSize = UIScreen.mainScreen().bounds
var screenWidth = sceneSize.width
var screenHeight = sceneSize.height
class GameViewController: UIViewController {
var scene: GameScene!
override func viewDidLayoutSubviews() {
super.viewWillLayoutSubviews()
let skView = self.view as! SKView
skView.multipleTouchEnabled = false
scene = GameScene(size: skView.bounds.size)
//scene.scaleMode = .AspectFill
scene.scaleMode = SKSceneScaleMode.ResizeFill
skView.presentScene(scene)
scene.anchorPoint = CGPointMake(0, 0)
skView.showsFPS = false
skView.showsNodeCount = false
skView.ignoresSiblingOrder = true
let completionBlock: () -> Void = {
}
let errorBlock: (NSError!) -> Void = { error in
print("error")
}
RevMobAds.startSessionWithAppID("", withSuccessHandler: completionBlock, andFailHandler: errorBlock);
}
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return .AllButUpsideDown
} else {
return .All
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Release any cached data, images, etc that aren't in use.
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}
编辑2游戏场景:
import Foundation
import SpriteKit
import UIKit
var sceneSize = UIScreen.mainScreen().bounds
var screenWidth = sceneSize.width
var screenHeight = sceneSize.height
class GameScene: SKScene {
player.position = CGPointMake(screenWidth / 5, screenHeight / 3)
}
最佳答案
首先,设置游戏场景SKSceneScalode(这是在GameViewController中预先编程的)
然后将以下代码复制到游戏场景中:
Import UIKit
var screenSize = UIScreen.mainscreen().bounds
var screenWidth = screenSize.width
var screenHeight = screenSize.height
这将在变量screen width和screen height中存储屏幕的宽度和高度。现在,当您创建spriteNodes和其他对象时,使用这两个变量作为基础。这里有一个例子
someNode.position = CGPoint(x: screenWidth/5 y: screenHeight/3)
关于ios - iPhone 4、5、5s和6+模拟器无法对齐节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34366684/