В настоящее время я пытаюсь сделать 2d игру про танка в Javascript для школьного проекта, и чтобы иметь дело с физикой, я использую материю библиотеки физики. js вместе с p5. js для рендеринга. Пока у меня есть базовый c холст с границами на стенах и полу, так что объекты не могут go за пределами экрана, однако следующая задача - иметь возможность перемещать ящик (который позже будет резервуаром). ) влево и вправо с помощью клавиш со стрелками. Раньше я делал нечто подобное в чистом JS, просто используя прослушиватель событий, чтобы определить, когда нажата клавиша со стрелкой влево или вправо, а затем перерисовывать объект на 5 пикселей влево или вправо. Однако этот подход не сработал в Matter. js, и он оставил меня в тупике.
Вот функция draw (), в которой я сейчас пытаюсь поэкспериментировать с различными способами, чтобы выяснить это:
function draw() {
background(51);
Engine.update(engine);
for (var i = 0; i < boxes.length; i++) {
boxes[i].show();
}
if(rightPressed) {
box1.position.x += 7
}
if(leftPressed) {
Body.applyForce(box1, {x: box1.position.x, y: box1.position.y}, {x: 0.05, y: 0});
}
for (var i = 0; i < boundaries.length; i++) {
boundaries[i].show();
}
for (var i = 0; i < circles.length; i++) {
circles[i].show();
if (circles[i].isOffScreen()) {
circles[i].removeFromWorld();
circles.splice(i, 1)
i--;
}
}
}
setInterval(draw, 10)
Любая помощь приветствуется :)