Показать сообщение отдельно
Старый 03.09.2013, 03:05   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: [проект] Tower Defense на WebGL

Делай массив индексов для мапы, а то такой формат как у тебя солько же будет занимать?

Вот так лучше будет ( http://files.moka.co/map.json ):
{
  
"tiles": [
    
"grass-trees",
    
"rock-trees",
    
"grass",
    
"road",
    
"snow-trees",
    
"rock",
    
"snow"
  
],
  
"width"15,
  
"height"15,
  
"map": [ 4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,4,4,4,4,3,3,3,3,3,3,4,1,1,1,1,4,4,3,3,3,3,3,3,3,3,3,3,1,1,1,4,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,6,6,6,6,3,3,3,3,1,1,3,3,3,6,6,6,6,6,6,5,5,3,3,3,1,3,3,4,4,4,4,4,4,4,5,5,3,3,3,1,4,4,4,4,4,4,0,1,1,1,5,5,3,3,1,4,4,4,4,4,0,0,1,1,1,5,5,3,3,1,1,4,3,3,3,0,0,0,2,2,2,3,3,3,1,1,4,3,3,3,0,2,2,2,2,2,3,3,3,1,1,1,3,3,3,3,2,2,2,3,3,3,3,2,0,1,1,3,3,3,3,3,3,3,3,3,3,3,2,0,1,1,1,3,3,3,3,3,3,3,3,2,2,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,]

Да и в BSON'е такое ваще хранить сказка, можно сделать tile максимум 8, или 16, тем самым юзать соответственно 1 или 2 байта на тайл.
А можно его вообще одной строкой а не массивом выводить.

Читаем:
for(var 0level.height; ++y) {
  for(var 
0level.width; ++x) {
    var 
tileInd level.map[level.height];
    var 
tile level.tiles[tileInd];
  }

Или если один цикл (ну кому как):
for(var 0len level.width level.heightlen; ++i) {
  var 
level.width;
  var 
Math.floor(level.width);
  var 
tileInd level.map[i];
  var 
tile level.tiles[tileInd];

Результат будет (tileInd):
4 4 4 4 4 4 4 4 4 4 4 1 1 1 1
4 4 4 4 3 3 3 3 3 3 4 1 1 1 1
4 4 3 3 3 3 3 3 3 3 3 3 1 1 1
4 3 3 3 3 3 3 3 3 3 3 3 3 1 1
3 3 3 3 3 6 6 6 6 3 3 3 3 1 1
3 3 3 6 6 6 6 6 6 5 5 3 3 3 1
3 3 4 4 4 4 4 4 4 5 5 3 3 3 1
4 4 4 4 4 4 0 1 1 1 5 5 3 3 1
4 4 4 4 4 0 0 1 1 1 5 5 3 3 1
1 4 3 3 3 0 0 0 2 2 2 3 3 3 1
1 4 3 3 3 0 2 2 2 2 2 3 3 3 1
1 1 3 3 3 3 2 2 2 3 3 3 3 2 0
1 1 3 3 3 3 3 3 3 3 3 3 3 2 0
1 1 1 3 3 3 3 3 3 3 3 2 2 0 0
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 
Так в разы экономнее.

ЗЫ, с div'ами ты конечно прикольнулся в редакторе, не мог канвой сделать?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (04.09.2013)