首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建/加载SKTilemapnode而不使用SKS/场景文件

创建/加载SKTilemapnode而不使用SKS/场景文件
EN

Stack Overflow用户
提问于 2017-01-17 01:24:43
回答 1查看 719关注 0票数 0

我以编程的方式创建我的精灵工具包游戏,而sks文件最终只会让我感到困惑。

是否有一种方法可以加载或创建一个平铺地图节点,而不必使用sks/场景文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-20 21:06:43

我想出了一个办法

  • 1)创建一个名为tilemaps的SKS文件
  • 2)在那里创建所有的地图
  • 3)添加此扩展名以加载当前场景中的场景文件: 扩展名SKNode { class func unarchiveFromFile(file : NSString) -> SKNode?{ if let path = Bundle.main.path(forResource: file as String,ofType:"sks") { let sceneData = NSData(contentsOfFile: path) let archiver = NSKeyedUnarchiver(forReadingWith: sceneData as!)数据) archiver.setClass(self.classForKeyedUnarchiver(),forClassName:"SKScene")让场景= archiver.decodeObject(forKey: NSKeyedArchiveRootObjectKey)!SKNode archiver.finishDecoding()返回场景} nil {返回nil}} }

然后从sks文件中获取瓷砖地图。奇怪的是,您必须先从它的父级移除它:

代码语言:javascript
复制
    guard 
      let tileScene = SKScene.unarchiveFromFile(file: "TileMaps"),
      let testMap = tileScene.childNode(withName: "Dungeon1")
        as? SKTileMapNode else {
            fatalError("Background node not loaded")
    }
    self.testMap = testMap
    self.testMap.removeFromParent()
    self.testMap.zPosition = 1200

    self.addChild(testMap)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41687649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档