很抱歉,如果我已经问过这个问题,但我非常坚持,第一个问题是非常不清楚。在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/

10-11 19:51
查看更多