2017-02-12 17 views
1

Я использую SKTiled.SKTiled: конкретное положение плитки

Функция SKTileLayer.tileAt(0,0) возвращает плитки в CGPoint. SKTileLayer.pointForCoordinate(coord: CGPoint) делает то же самое.

Все, что я хочу, это получить плитки на сетке (0,0), а не плитки на CGPoint. Это будет первая сетка на карте. Как я могу получить плитки таким образом?

Редактировать: tileAt(0,0) возвращает первую сетку, но если я хочу изменить позицию игрока на tileAt(0,0), это не реальная позиция.

ответ

0

Это отличная основа, вы можете использовать метод, который возвращает плитки координат для заданной точки в слое:

SKTileLayer.coordinateForPoint(<#T##TiledLayerObject#>) 

Вы можете найти более подробную информацию в рамках официальной документации here

You можно также получить плитку после автозавершения, как:

enter image description here

как у ou может видеть это return a SKTile

+0

Хорошо, это работает, но почему я должен добавитьChild (плеер) в слои, чтобы получить работу? – Lirf

+0

Нет, это не обязательно, вы должны обратить внимание на 'zPosition'. Для этого всегда к [docs] (https://mfessenden.github.io/SKTiled/Classes/SKTilemap.html#/s:vC7SKTiled9SKTilemap13lastZPositionV12CoreGraphics7CGFloat) вы можете найти полезный var, называемый 'lastZposition' –

+0

Если я этого не сделаю 'SKTileLayer.addChild (Player)' Я получаю не правильную позицию для узла игрока. Как бы то ни было, знаете ли вы, как ускорить создание карты плитки? 1,6 секунды на маленькой карте. – Lirf

 Смежные вопросы

  • Нет связанных вопросов^_^