首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >keyIsDown()在p5js中的问题

keyIsDown()在p5js中的问题
EN

Stack Overflow用户
提问于 2019-02-21 08:14:20
回答 1查看 1.8K关注 0票数 1

我试着用p5js和p5.play制作一个基本的2d游戏。每当我尝试做任何事情时,似乎都会引起问题的一个问题是keyIsDown函数。是否有一种方法在按下键之前确定键是否已按下?如果我用

代码语言:javascript
复制
upKey = keyIsDown(UP_ARROW);

upKey将显示为未定义的,直到我按下向上箭头。在按压这些类型的事物之前,是否有任何方法将相应的布尔值分配给它们?到目前为止,我的游戏将无法正常工作,直到我按下每一个涉及的关键一次。

EN

回答 1

Stack Overflow用户

发布于 2019-02-21 16:28:37

keyIsDown()函数检查键当前是否按下,即按下。如果您有一个移动的对象,并且您希望几个键能够同时影响它的行为,例如对角移动一个sprite,则可以使用它。

请注意,箭头键还会导致页面滚动,因此您可能希望在游戏中使用其他键。但是,如果要使用箭头键,这是来自参考页面的代码片段。

代码语言:javascript
复制
let x = 100;
let y = 100;
function setup() {
  createCanvas(512, 512);
}

function draw() {

  if (keyIsDown(LEFT_ARROW)) {
    x -= 5;
  }

  if (keyIsDown(RIGHT_ARROW)) {
    x += 5;
  }

  if (keyIsDown(UP_ARROW)) {
    y -= 5;
  }

  if (keyIsDown(DOWN_ARROW)) {
    y += 5;
  }

  clear();
  fill(255, 0, 0);
  ellipse(x, y, 50, 50);
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.min.js"></script>

要在不使用箭头键的情况下实现类似的逻辑,您需要确定要使用的键的键代码。

下面是一个使用awsd键的示例,它还注销了当前按下的键的键代码。

代码语言:javascript
复制
let x = 50;
let y = 50;
function setup() {
  createCanvas(512, 512);
}
function keyPressed(){
console.log(keyCode);
}

function draw() {
  if (keyIsDown(65)) {
    x -= 5;
    if (x < 0) x = 0;
  }

  if (keyIsDown(68)) {
    x += 5;
    if (x > width) x = width;
  }

  if (keyIsDown(87)) {
    y -= 5;
    if (y < 0) y = 0;
  }

  if (keyIsDown(83)) {
    y += 5;
    if ( y > height) y = height;
  }

  clear();
  fill(255, 0, 0);
  ellipse(x, y, 50, 50);
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.min.js"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54802201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档