Способ сделать это - определить группу плиток и соответствующие определения плиток для плиток вашей игры. Это позволяет вам определять определенные c идентификаторы в информации userData каждой из ваших групп плиток, чтобы вы могли различать их в коде.
https://developer.apple.com/documentation/spritekit/sktiledefinition/1645813-userdata
Например, в вашей игре вы можете создать группу плиток, которая соответствует всем тем красным плиткам, которые составляют букву A. Затем вы можете установить пользовательский ключ в словаре userData для этого типа плиток, чтобы идентифицировать его. Затем проверяйте ключ или значение ключа в коде всякий раз, когда игрок хочет перейти на новую плитку. Вы можете напрямую установить словарь userData плитки в Инспекторе Атрибутов в определении плитки варианта.
Код для проверки будет выглядеть примерно так (при условии, что для логического ключа 'letterA' установлено значение true в словаре userData:
let letterTile = myTileMap.tileDefinition(atColumn: column, row: row)
if letterTile.userData?.value(forKey: "letterA") == true {
// Allow the player to move to this tile as it's one of the letter A tiles.
}
Редактировать:
В ответ на ваш запрос вам не нужно заполнять свою игровую карту / сетку в коде. Для этого я предполагаю, что вы создали игровой проект с GameScene.sks уже заполнен. В этом файле вы можете удалить «Узел карты плиток» из библиотеки объектов, и там вы будете использовать редактор для добавления ваших плиток.
Теперь плитки с их пользователем Данные поступят из файла ресурсов SpriteKit TileSet, который также должен был быть добавлен в ваш проект.На текущий XCode (v11.3.1) набор плиток по умолчанию поставляется с предварительно собранными плитками, но ничто не мешает вам добавить свои собственные пользовательские настройки. плитки (красные плитки для вашего маршрута буквы A). Затем, когда вы создали свои группы плиток и определения плиток, вы можно изменить свой словарь пользовательских данных, выбрав конкретные варианты и добавив ключи / значения в окне инспектора.
Если вы не уверены в том, как выполнить процесс, который я описал в предыдущих 2 абзацах, в настоящий момент существует несколько SpriteKit. TileMap учебники, которые свободно доступны в Интернете. Я полагаю, что они могут помочь вам в этом.
Однако, что должно быть закодировано, так это фактический лог c для проверки информации о пользовательских данных в определенных c тайлах, чтобы вы могли ограничить движение игрока как Вы sh - пример, который я привел в своем первоначальном ответе.