Изменить цвет конкретных плиток в SKTileMapNode - PullRequest
0 голосов
/ 21 марта 2019

Я создаю игру на основе раундов, где у меня есть игровая площадка в виде SKTileMapNode с текстурами травы на каждой плитке, где персонажи могут переходить от плитки к плитке. Каждый персонаж имеет свою собственную досягаемость, где они могут ходить за один раунд Я хочу отобразить этот диапазон, чтобы игрок мог видеть диапазон выбранного персонажа. Мой вопрос: Как я могу изменить цвет тех плиток, которые находятся в диапазоне плиток, где находится определенный персонаж? SKSpriteNode с текстурами может просто изменить их цвет на .color и .colorBlendFactor, чтобы моя текстура зеленой травы приобрела, например, красную окраску. Как я могу сделать это с конкретными плитками в SKTileMapNode?

1 Ответ

0 голосов
/ 21 марта 2019
let tile = tileMap.tileDefinition(atColumn: column, row: row)

Когда у вас есть плитка, вы можете изменить текстуры плитки tile.textures, чтобы включить в нее тонированные текстуры или нарисовать цветные текстуры самостоятельно (грязно, но вот пример этого).

Я бы порекомендовал другой подход - получить центр плиток tileMap.centerOfTile(atColumn: column, row: row), который вы хотите закрасить, и использовать его и их размер tileMap.tileSize для создания узлов SKSpriteNode выше плиток, которые вы хотите.быть цветным.

...