Как сохранить мои данные в синхронизации c с графиком сцены? - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть список, в который я добавляю / удаляю элементы:

let list = [];
list.push(1);
list.push(2);
list.shift();

Или это также может быть карта:

let res = {};
res['key'] = 3;
res['key2'] = 5;
delete res['key'];

Теперь я хочу отобразить этот список / карту , Я использую Pixi. js, где есть граф сцены для объектов.

Поэтому у меня есть несколько функций для настройки и рендеринга этой сцены:

let dS = new Sprite();
addToScene();

function addToScene() {
    // add a sprite to the scene
  scene.addChild(dS);
}

// called once on setup
function init() {
  dS.texture = textures['smile'];
}


// called everytime on render
function render() {
    dS.position.set(x, y);
}

Как вы можете видеть, есть шаг создания спрайтов, добавления спрайтов в сцену, инициализации с текстурами и установки их положения в каждый момент рендеринга. Теперь это было бы легко, если бы я знал, что спрайты были стати c. Но, как я упоминал выше, у меня есть список, в который я добавляю / удаляю элементы. Как мне инициализировать эти спрайты, связанные с каждым элементом списка, и отобразить их, а также добавить / удалить их по мере их добавления / удаления из списка.

1 Ответ

0 голосов
/ 12 апреля 2020

Насколько я знаю, вы не можете "соединить" два массива так, как вы хотите это сделать

Между тем, единственное, что вы можете сделать, - это создать массив со своими спрайтами:

let sprites = [];

Затем создайте методы добавления и удаления:

function addSprite(id){
    sprites[id] = new Sprite();
    scene.addChild(sprites[id]);
}

function removeSprite(id){
    scene.removeChild(sprites[id]);
    delete sprites[id];
}
...