Я работаю над изометрической игрой для быстрых браузеров, поддерживающих <canvas>
, что очень интересно. Чтобы сохранить информацию о каждом фрагменте, я использую двумерный массив, который содержит числа, представляющие идентификаторы плитки, например:
var level = [[1, 1, 1, 2, 1, 0],
[0, 1, 1, 2, 0, 1],
[0, 1, 1, 2, 1, 1]];
var tiles = [
{name: 'grass', color: 'green'},
{name: 'water', color: 'blue'},
{name: 'forest', color: 'ForestGreen'}
];
Пока это отлично работает, но теперь я хочу работать с высотами и склонами, как на этой картинке: alt text http://harmen.no-ip.org/isometrictiles.png
Для каждой плитки мне нужно сохранить идентификатор плитки, высоту и информацию о том, какие углы повернуты вверх.
Я придумал простую идею о поразрядном представлении всех четырех углов, например:
1011 // top, bottom and left corner turned up
Мой вопрос: какой самый эффективный способ сохранить эти три значения для каждой ячейки? Можно ли сохранить эти три значения как одно целое?