Задать вопрос
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
            }
        }
    }
}
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Coddyschool
    Стэнфордский курс Swift
    6 месяцев
    Далее
  • Яндекс Практикум
    iOS-разработчик
    10 месяцев
    Далее
  • Компьютерная академия «TOP»
    Разработка приложений для iOS
    12 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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