1
我正在玩瓷砖编辑器,我用它创建了一个如下所示的简单,有点大的地图。瓷砖尺寸为64×64,地图大小为58×32从当前位置移动SKNode一块瓷砖
而且我想知道游戏角色的当前位置。让我称它为播放器(如SKNode
)。我想知道这个人的当前位置,以便我可以了解它的任何一个相邻瓷砖是不是一个障碍。以下几行代码给我(7,-3)。
background = self.childNode(withName: "World") as! SKTileMapNode
let position = background.convert(player.position, from: player)
let column = background.tileColumnIndex(fromPosition: position)
let row = background.tileRowIndex(fromPosition: position)
print(column, row)
,这表明这些坐标指向相机的中心,用红色圆圈表示。以下给我(10,2)。
let position = background.convert(player.position, from: self)
let column = background.tileColumnIndex(fromPosition: position)
let row = background.tileRowIndex(fromPosition: position)
这是从左下角开始的位置。现在
,如果我想用1瓦,写入到移动游戏角色了......
let position = background.convert(player.position, from: player)
let column = background.tileColumnIndex(fromPosition: position)
let row = background.tileRowIndex(fromPosition: position)
let destination = background.centerOfTile(atColumn: column, row: row + 1)
let action = SKAction.move(to: destination, duration: 1)
player.run(action)
,游戏角色会失踪,被从地图的脸上消失。那么我怎样才能将节点移动一个tile?
号节点会从地图上消失。 –
也许一个简单的建议,但试着打印玩家当前和期望位置的实际CGPoints。如果玩家刚刚离开地图,那么想到的最简单的想法就是CGPoint也不在地图上。 – JohnV