Задать вопрос
Homchenkokostya
@Homchenkokostya

Как правильно менять zPosition персонажа на карте?

Добрый день, подскажите пожалуйста, может кто делал такое, как правильно менять zPosition персонажа на карте? Если делать перебор каждой клетки карты, то получается, что мы проходим по всем клеткам и выставляем zPosition нашего персонажа по последней. На видео видно что с нижней клеткой все нормально но верхняя перекрывает персонажа, так как координаты считаются по нижней клетке.

Видео

override func didMove(to view: SKView) {
    self.stone = self.childNode(withName: "//stone") as! SKTileMapNode
    self.player = self.childNode(withName: "//player") as! SKSpriteNode
}

override func update(_ currentTime: TimeInterval) {
    var position = self.player.position
          position.y -= 32

    for column in 0..<self.stone.numberOfColumns {
        for row in 0..<self.stone.numberOfRows {
                
            let definition = self.stone.tileDefinition(atColumn: column, row: row)
                
            guard let _ = definition?.userData?.value(forKey: "edge") else {
                continue
            }
                
            let bounds = self.stone.centerOfTile(atColumn: column, row: row)
                
            self.player.zPosition = 0
                
            if position.y <= bounds.y {
                 self.player.zPosition = 1
            }
        }
    }
}
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы