Я написал небольшую игру. В ней по полю можно перемещать танк игрока при помощи клавиш курсора.
LIVE DEMO
В state хранятся координаты игрока. Также в state есть ключ walls, по которому хранится массив координат стен. Отдельно этот массив я сгенерировал в потоке walls$, но у меня не получается добавить его в state. Помогите пожалуйста.
В программе основные действия происходят здесь:
const game$ = combineLatest(keys$, walls$).pipe()
game$.subscribe((action) => {
switch (action[0]) {
case 'ArrowUp':
if(state.y > 0) { state.y--; }
break;
case 'ArrowRight':
if(state.x < gameWidth - 1) { state.x++; }
break;
case 'ArrowDown':
if(state.y < gameHeight - 1) { state.y++; }
break;
case 'ArrowLeft':
if(state.x > 0) { state.x--; }
break;
}
renderGame(state);
// console.log(state)
});
Как видите, я при помощи combineLatest пытаюсь объединить поток, отслеживающий нажатия клавиш и поток сгенерированных стен.
Итак, повторю ещё раз проблему. Я хотел бы чтобы
// console.log(state)
выводил массив сгенерированных стен. Если это будет, то отрисовать его я уже сам смогу.