对于我目前正在进行的一个项目,我有两个 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)
}
}
结果