英文:
How to jump object using arrow key in p5js?
问题
这是我尝试的代码。当我按下“上箭头键”或“空格键”时,球会跳跃。问题是当球跳跃时,我无法让球稍微前进一点。有人可以帮我吗?
let jumper;
function setup() {
createCanvas(400, 400);
jumper = new Jumper();
}
function draw() {
clear();
jumper.run();
push();
fill(217);
textFont('Avenir');
textAlign(CENTER, CENTER);
textSize(33);
text('按空格键跳跃', width >> 1, height * 0.15);
pop();
}
function keyPressed() {
jumper.vel.y = -4;
jumper.vel.x = +5;
}
希望对你有帮助!
英文:
This is my code that I tried. The ball is jumping when I pressing "up arrow key" or "space bar".The problem is that I am unable to move ball little bit forward when ball jumped.Can anybody help me please?
let jumper;
function setup() {
createCanvas(400, 400);
jumper = new Jumper();
}
function draw() {
clear();
jumper.run();
push();
fill(217);
textFont('Avenir');
textAlign(CENTER,CENTER);
textSize(33);
text('space bar to jump', width>>1, height*0.15);
pop();
}
function keyPressed() {
jumper.vel.y = -4;
jumper.vel.x=+5;
}
答案1
得分: 0
你需要在倒数第二行修复bug。
英文:
You need to remove the bug in the second last line.
jumper.vel.x += 5;
答案2
得分: 0
我设置了一个非常基本的示例,我认为这可能是你所努力实现的内容:
let jumper;
function setup() {
createCanvas(400, 400);
jumper = new Jumper();
}
function draw() {
clear();
jumper.run();
push();
fill(217);
textFont('Avenir');
textAlign(CENTER, CENTER);
textSize(33);
text('按空格键跳跃', width >> 1, height * 0.15);
pop();
}
function keyPressed() {
jumper.x += 5;
}
class Jumper {
constructor() {
this.x = 10;
this.y = height/2;
}
run() {
ellipse(this.x, this.y, 10, 10);
}
}
@Dishant 在你的代码中指出了一个错误,就是你写了 jumper.vel.x =+ 5
,实际上这只是将 jumper 的位置设置为 x 位置为 5。你想要的是实际上让 jumper 向前移动 5 个像素 - 在我的示例中,这是通过 jumper.x += 5
来实现的,但你当然可以使用 jumper.vel.x += 5
,因为你的问题中没有显示该代码!
英文:
I set up a very basic example of what I think you might be working towards:
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-js -->
let jumper;
function setup() {
createCanvas(400, 400);
jumper = new Jumper();
}
function draw() {
clear();
jumper.run();
push();
fill(217);
textFont('Avenir');
textAlign(CENTER,CENTER);
textSize(33);
text('space bar to jump', width>>1, height*0.15);
pop();
}
function keyPressed() {
jumper.x+=5;
}
class Jumper {
constructor() {
this.x = 10;
this.y = height/2;
}
run() {
ellipse(this.x, this.y, 10, 10);
}
}
<!-- language: lang-html -->
<script src="https://cdn.jsdelivr.net/npm/p5@0.10.2/lib/p5.js"></script>
<!-- end snippet -->
@Dishant was correct in that your code had a typo in where you did jumper.vel.x =+ 5
which is basically just setting the position of the jumper to the x position of 5. When what you want is to actually make the jumper move 5 pixels forward - in my example this done using jumper.x += 5
but you'd of course use jumper.vel.x += 5
as that code wasn't shown in your question!
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论