Для проекта, над которым я сейчас работаю, у меня есть два 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)
}
}
Результат
Результат