Pracuję nad izometryczną grą dla szybkich przeglądarek obsługujących <canvas>
, co jest świetną zabawą. Aby zapisać informacje z każdej płytki, używam dwuwymiarową tablicę, która zawiera numery reprezentujących identyfikatory dachówka, jak:Najbardziej efektywny sposób na zapisywanie danych kafelków izometrycznej gry
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'}
];
tej pory działa świetnie, ale teraz chcę pracować z wysokości i zboczach jak na tym zdjęciu : alt text http://harmen.no-ip.org/isometrictiles.png
Dla każdego kafelka muszę zapisać jego identyfikator płytki, wysokość i informację o tym, które rogi są skierowane w górę.
wpadłem na prostym pomyśle o reprezentacji mnożenie wszystkich czterech rogach, tak:
1011 // top, bottom and left corner turned up
Moje pytanie brzmi: co to jest najbardziej skuteczny sposób, aby zapisać te trzy wartości dla każdej komórce? Czy można zapisać te trzy wartości jako jedną liczbę całkowitą?
+1 za zdjęcie :) – cletus
+1 Doskonałe pytanie. Również interesuje się grą. –
+1 za nie tylko zdjęcie, ale ogólną przejrzystość pytania. Miło jest zobaczyć kogoś, kto poświęca swój czas na dokładne zadawanie pytań. – Ricket