swift - tilemap in sprite kit -


this drawing tilemap in spritekit. following error:

terminating app due uncaught exception 'nsinvalidargumentexception', reason: 'attemped add sknode has parent: name:'(null)' texture:['nil'] position:{64, 0} size:{0, 0} rotation:0.00'

this gameviewcontroller.swift:

import uikit import spritekit  class gameviewcontroller: uiviewcontroller {  override func viewdidload() {     super.viewdidload()      let scene = gamescene(size: cgsize(width: 1024, height: 768))     // configure view.     let skview = self.view as! skview     skview.showsfps = true     skview.showsnodecount = true      /* sprite kit applies additional optimizations improve rendering performance */     skview.ignoressiblingorder = true      /* set scale mode scale fit window */     scene.scalemode = .aspectfill      skview.presentscene(scene) } override func prefersstatusbarhidden() -> bool {     return true } } 

this gamescene.swift:

import spritekit  class gamescene: skscene {  let dungeon = sknode()  let readablemap: [[int]] = [     [01, 00, 01, 01],     [01, 00, 01, 01],     [01, 00, 01, 01],     [00, 01, 00, 01]]  override init(size: cgsize) {     super.init(size: size) }  required init?(coder adecoder: nscoder) {     fatalerror("init(coder:) has not been implemented") }  override func didmovetoview(view: skview) {     /* setup scene here */     drawmap() }  override func touchesbegan(touches: set<nsobject>, withevent event: uievent) {     /* called when touch begins */      touch in (touches as! set<uitouch>) {         let location = touch.locationinnode(self)     } }  override func update(currenttime: cftimeinterval) {     /* called before each frame rendered */ }  func drawmap() {     let map = readablemap.reverse()     let tiles = [[tile]](count: map.count, repeatedvalue: [tile](count: map[0].count, repeatedvalue: tile()))      in 0..<map.count {         j in 0..<map[0].count {             let tile = tiles[j][i]             tile.position = cgpoint(x: j * int(tile.tilesize.width), y: * int(tile.tilesize.height))             dungeon.addchild(tile)         }     } } } 

this class in tile.swift:

import spritekit  class tile: skspritenode { let tilesize: cgsize = cgsize(width: 64, height: 64) let tiletexture: sktexture = sktexture(imagenamed: "o") } 

what reason? anyone, i'm still learning.


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -