我目前正在使用p5进行游戏,其中将包含一些非常复杂的内容……至少对我而言是这样。
在没有在p5中循环的情况下如何调用课程?
考虑以下代码:
function draw() {
lumberjack.clicked();
}
class Lumberjack {
constructor(x, y, br, bg, bb, dr, dg, db) {
this.x = x,
this.y = y,
this.br = br,
this.bg = bg,
this.bb = bb,
this.dr = dr,
this.dg = dg,
this.db = db
}
body() {
noStroke();
fill(this.br, this.bg, this.bb);
rect(this.x, this.y, 20, 40);
fill(this.dr, this.dg, this.db);
rect(this.x + 4, this.y - 2, 2, 35);
rect(this.x + 14, this.y - 2, 2, 35);
rect(this.x, this.y + 30, 20, 10);
fill(91, 51, 0);
rect(this.x, this.y + 30, 20, 2);
fill(255);
rect(this.x + 9, this.y + 30, 2, 2);
}
move() {
}
clicked() {
let d = dist(mouseX, mouseY, this.x + 10, this.y + 20);
if (d < 20) {
console.log("I'm a lumberjack and I'm ok");
}
}
}
如果我单击伐木工人,就会出现无限循环的console.logs。
我能弄清楚如何解决此问题的唯一方法是将函数调用放入mousePressed()函数中,但随后console.log仍被调用两次。
我可以在没有循环的情况下调用类吗?
谢谢!
最大
答案 0 :(得分:3)
使用mouse clicked函数。
function draw() {
lumberjack.draw() // do something to draw the lumberjack
}
function mouseClicked(e) {
lumberjack.clicked() // handle click on canvas
}