SKTileMapNode не загружается до нужного размера - PullRequest
0 голосов
/ 21 мая 2018

Для проекта, над которым я сейчас работаю, у меня есть два SKTileMapNodes, расположенные друг над другом.Они отличаются количеством строк, столбцов, а также размером плитки.Однако его следует приравнять так, чтобы они имели одинаковую общую ширину и высоту.

Проблема заключается в том, что один из листов листов имеет неправильный размер, несмотря на правильные строки, столбцы и размер листов.

Первый SKTilMapNode (правильный размер)

class Map:SKTileMapNode {

  func initMap() {

    name = "Map"

    tileSet = SKTileSet(named: "tileSet")!
    numberOfColumns = 32
    numberOfRows = 32
    tileSize = CGSize(width: 32, height: 32)
    position = CGPoint(x: 0, y: 0)
    anchorPoint = CGPoint(x: 0.5, y: 0.5)

    self.fill(with: self.tileSet.tileGroups[4])

  }

}

Второй SKTileMapNode (правильный размер)

class PaintLayer:SKTileMapNode {

    func initPaintLayer() {

        name = "PaintLayer"

        tileSet = SKTileSet(named: "tileSet")!
        numberOfColumns = 32*4
        numberOfRows = 32*4
        tileSize = CGSize(width: 32/4, height: 32/4)
        position = CGPoint(x: 0, y: 0)
        anchorPoint = CGPoint(x: 0.5, y: 0.5)

        self.fill(with: self.tileSet.tileGroups[1])

    }

}

Инициализирован в игровой сцене

class GameScene: SKScene {

  var map:Map = Map()
  var paintLayer:PaintLayer = PaintLayer()
  var player:Player = Player(imageNamed: "player")

  override func didMove(to view: SKView) {

      let camera:SKCameraNode = SKCameraNode()
      self.camera = camera
      self.addChild(camera)

      map.initMap()
      self.addChild(map)

      paintLayer.initPaintLayer()
      self.addChild(paintLayer)

      player.initPlayer()
      self.addChild(player)

  }

}

Результат

Результат

...