Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用箭头键移动Matter.js主体?_Javascript_P5.js_Matter.js - Fatal编程技术网

Javascript 如何使用箭头键移动Matter.js主体?

Javascript 如何使用箭头键移动Matter.js主体?,javascript,p5.js,matter.js,Javascript,P5.js,Matter.js,我目前正在尝试用Javascript为一个学校项目制作一个2d坦克游戏,并处理物理问题,我使用物理库matter.js和p5.js进行渲染。到目前为止,我有一个基本的画布,在墙壁和地板上有边界,这样物体就不会离开屏幕,但是,下一个任务是能够用箭头键左右移动一个盒子(稍后将是一个坦克)。我以前在纯JS中也做过类似的事情,只需使用事件侦听器来告知何时按下左箭头键或右箭头键,然后将对象向左或向右重绘5个像素。然而,这种方法在Matter.js中不起作用,这让我感到非常困惑 下面是draw()函数,我目

我目前正在尝试用Javascript为一个学校项目制作一个2d坦克游戏,并处理物理问题,我使用物理库matter.js和p5.js进行渲染。到目前为止,我有一个基本的画布,在墙壁和地板上有边界,这样物体就不会离开屏幕,但是,下一个任务是能够用箭头键左右移动一个盒子(稍后将是一个坦克)。我以前在纯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)
函数绘图(){
背景(51);
引擎更新(引擎);
对于(变量i=0;i
非常感谢您的帮助:)

使用keyIsDown()函数检查特定的键输入。 例如:

draw(){

   if(keyIsDown(LEFT_ARROW)){
      //code xyz
     }

}