簡體   English   中英

SpriteKit GameScene與iOS7的兼容性

[英]SpriteKit GameScene compatibility for ios7

我的應用程序在iOS 8+上運行良好,但iOS 7弄亂了所有坐標,這是復制創建游戲的實現的正確方法iOS 7的場景

這是我的方法:

   if #available(iOS 8, *) {
    if let scene = GameScene(fileNamed:"GameScene") {
        self.skView = self.view as! SKView

        skView.ignoresSiblingOrder = true

        scene.scaleMode = .AspectFill

        NSNotificationCenter.defaultCenter().addObserver(self, selector: "quitToLevel:", name: "quitToLevelID", object:nil)
        skView.presentScene(scene)
    }
     } else {
        //here starts the wrong part
        if let scene = GameScene(size: view.frame.size) as GameScene? {

            let skView = self.view as! SKView

            scene.scaleMode = .AspectFill

            NSNotificationCenter.defaultCenter().addObserver(self, selector: "quitToLevel:", name: "quitToLevelID", object:nil)
            skView.presentScene(scene)
        }
    }
extension SKNode {
    class func unarchiveFromFile(file : NSString) -> SKNode? {
        if let path = NSBundle.mainBundle().pathForResource(file as String, ofType: "sks") {
            var sceneData = try! NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe)
            var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)

            archiver.setClass(self.classForKeyedUnarchiver(), forClassName: "SKScene")
            let scene = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as! SKScene
            archiver.finishDecoding()
            return scene
        } else {
            return nil
        }

    }
}

不確定是否會有所不同,但您應將場景大小基於skView.bounds.size的else語句

所以改成這個

 } else {
    //here starts the wrong part
    let skView = view as! SKView!
    let scene = GameScene(size: skView.bounds.size)

    scene.scaleMode = .AspectFill

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "quitToLevel:", name: "quitToLevelID", object:nil)

    skView.presentScene(scene)
}

看看它現在是否正常工作。

不知道這是否可以在ios 7上使用,但是值得一試。 您需要您的應用程序來支持ios 7嗎? 僅剩下10%的用戶正在運行該特定操作系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM