为什么释放键时函数返回值?

问题描述 投票:2回答:1

我知道这可能是一个愚蠢的问题,但是我无法弄清楚p5.js中的代码是怎么回事(我使用在线编辑器。)>

我正在做一个简单的蛇游戏,但是当我调用该函数以添加某个值以移动头部(现在仅是头部)时,它将返回我想要的值,但是尽管我仍然释放了键,但它又做了一次也称为:

function keyReleased(){
    return false;
  }

这些是我在草图文件中调用的功能。

let w = 87;
let a = 65;
let s = 83;
let d = 68;
let stepToDo = 10;

function keyPressed(axis){
  if (axis === 0){
    if(keyCode === a){
      keyCode = 0;
      return -stepToDo;
    } else if(keyCode === d){
      keyCode = 0;
      return stepToDo;
    } else {
      return 0;
    }
  } else if (axis === 1) {
    if(keyCode === w){
      keyCode = 0;
      return -stepToDo;
    } else if(keyCode === s){
      keyCode = 0;
      return stepToDo;
    } else {
      return 0;
    }
  }
}

function keyReleased(){
    return false;
  }

这是草图文件。

let arrTest = [200, 200];


function setup() {
  createCanvas(400, 400);
}

function draw() {
  background(220);

  arrTest[0] = arrTest[0] + keyPressed(0);
  arrTest[1] = arrTest[1] + keyPressed(1);
  keyReleased();
  //console.log(arrTest);

  rect (arrTest[0], arrTest[1], 10, 10);
}

链接到草图本身https://editor.p5js.org/antolab/sketches/_Lzz41cos

我知道这可能是一个愚蠢的问题,但是我无法弄清楚p5.js中的代码是怎么回事(我使用在线编辑器)。我正在做一个简单的蛇游戏,但是当我调用函数添加一个...

javascript function scope key p5.js
1个回答
1
投票

keyPressed()功能是keyPressed()。您不必从主event listener循环中调用它;而是每次按键时都会自动调用它。这样,您可以使用它根据输入键来更改位置数组。例如如下:

© www.soinside.com 2019 - 2024. All rights reserved.