Может быть, это то, как это обычно делается. У вас есть список различных плиток, которые представляют дорожные плитки во всех их возможных ориентациях. Слева направо, все четыре угла, сверху вниз, что угодно. Теперь вы будете индексировать все эти плитки с байтом каждый. 8 бит, по одному для каждого направления. Это может быть в хэш-карте или по имени файла ... однако вы хотите сделать это.
Итак, у вас есть это:
Байтовый код для вышеуказанного тайла - 00000000 . Тогда ваша плитка, идущая слева направо (или справа налево), выглядит следующим образом:
Байт-код для этой плитки - 10001000 или 136. В качестве другого примера, давайте рассмотрим трехстороннее пересечение:
Байт-код для этой плитки - 10101000 .
Вы, наверное, видите, куда я иду. Вы устанавливаете битовые позиции в байте, представляющем соединения. Это гораздо лучше, чем пытаться создать какую-то большую цепочку if / else, которую я видел раньше. Когда вы хотите разместить плитку, осмотрите плитки вокруг нее и создайте по пути байт. Установите 1 для плиток, у которых есть дороги (или что вы хотите соединить), и 0 для плиток, у которых нет. Когда вы закончите, у вас будет байт-код для нужной плитки.
Обратите внимание, что при создании ресурсов вы можете использовать многие из них, просто вращая и присваивая ему правильный байт-код.
РЕДАКТИРОВАТЬ : Обновлены изображения, чтобы быть менее дрянным. Да, это лучше, чем раньше.