Я довольно новичок в использовании объектов JSON и немного застрял.
У меня есть объект JSON, который был преобразован из этого массива:
Array
(
[status] => success
[id] => 1
[name] => Zone 1
[description] => Awesome zone deze..
[tiles] => Array
(
// Column for the tile grid
[0] => Array
(
// Row for the tile grid
[0] => Array
(
[tileID] => 1
[rotation] => 0
)
[1] => Array
(
[tileID] => 1
[rotation] => 0
)
// Etc..
)
[1] => Array // etc.. etc..
)
)
Я использую этот объект для визуализации изометрической сетки для моей игры на холсте HTML5. Я строю редактор карт и, чтобы разместить больше плиток на карте, мне нужно будет добавить значения к этому объекту json.
Вот как я бы сделал это в PHP:
mapData[column][row] = array(
'tileID' => 1,
'rotation' => 0
);
Итак, мой вопрос: как мне достичь этого с помощью объекта JSON в javascript?
Заранее спасибо!
Ник
Обновление
Я столкнулся с ошибкой:
can't convert undefined to object
mapDataTiles[mouseY][mouseX] = { tileID: editorSelectedTile, rotation: 0 };
Это код, который я использую для нажатия и сохранения новой плитки в объект JSON. Сначала я подумал, что один из моих параметров был «неопределен», поэтому я записал их в консоль, но они вышли идеально ..
// If there is already a tile placed on these coordinates
if( mapDataTiles[mouseX] && mapDataTiles[mouseX][mouseY] )
{
mapDataTiles[mouseX][mouseY]['tileID'] = editorSelectedTile;
}
// If there is no tile placed on these coordinates
else
{
mapDataTiles[mouseX][mouseY] = { tileID: editorSelectedTile, rotation: 0 };
}
Мои переменные имеют следующие значения:
MouseX: 5
MouseY: 17
tileID: 2
Также странный факт, что для некоторых координат он действительно работает и сохраняет новые данные в массив.
ОБНОВЛЕНИЕ 2
После нескольких часов проб и кодирования ошибок я нашел решение!
Спасибо за помощь всем!
Если кому-то интересно, я буду рад показать мой код. Пока что у меня есть возможность расширять карту мира в любом направлении для неограниченного количества плиток. : D
Cya