i have quite specific problem. used presenting game scene view controller default code. added skscene , presenting game scene using code:
//in skscene (not game scene) let scene = gamescene() let skview = self.view! skview.ignoressiblingorder = true scene.scalemode = .aspectfit let push = sktransition.push(with: sktransitiondirection.right, duration: 0.4) skview.presentscene(scene, transition: push) my problem game scene seems no longer recognize sks file when run line of code:
//in gamescene sprite = self.childnode(withname: "sprite") as! sklabelnode it doesn't find when unwrapping. when present skscene gameviewcontroller using code:
if let scene = gkscene(filenamed: "gamescene") { // skscene loaded gkscene if let scenenode = scene.rootnode as! gamescene? { // copy gameplay related content on scene scenenode.entities = scene.entities scenenode.graphs = scene.graphs // set scale mode scale fit window scenenode.scalemode = .aspectfit // present scene if let view = self.view as! skview? { view.presentscene(scenenode) view.ignoressiblingorder = true } } } everything works. doing wrong? in advance.
i think reason crashes when present within skscene, , not uiviewcontroller because of 2 reasons.
- you creating 2 different classes, have different code. when present
skscene, create object of typegamescenewhen presentuiviewcontrollercreate object of typegkscene. - when create object of type
gamescene, use initializer not take account attached sks file. when create object of typegkscenedo.
therefore, edit first block of code be:
//in skscene (not game scene) if let scenecontainer = gkscene(filenamed: "gamescene") { let skview = self.view! skview.ignoressiblingorder = true //something comparable following line. don't have project set up, let compiler run through exact syntax. let scene = scenecontainer.rootnode as! gamescene? scene?.scalemode = .aspectfit let push = sktransition.push(with: sktransitiondirection.right, duration: 0.4) skview.presentscene(scene!, transition: push) } the doc getting skscene gkscene can found here.
Comments
Post a Comment