事情开始后,我无法在我的p5js项目上调用setup()或将任何布尔值更改为false。
我尝试创建一个名为reset()
的新函数,而不是调用setup()
而不是调用reset()
,但这没用。
let x, y;
let start;
let trianglespeed;
let x1, y1, x2, y2, x3, y3;
let r;
let lost, playing, win;
function setup() {
createCanvas(400, 400);
r = random(900, 4000);
x = 100 - 20;
y = 200 - 20;
x1 = r
y1 = 150;
x2 = x1 + 10;
y2 = 180;
x3 = x2 + 10;
y3 = 150;
textSize(30);
noStroke();
start = "Click screen to play";
trianglespeed = 0;
lost = false;
playing = false;
win = false;
}
function draw() {
background(220);
fill(112, 166, 255);
text(start, 70, 100);
fill(178, 178, 178);
rect(x, y, 20, 20);
fill(255, 99, 99);
triangle(x1, y1, x2, y2, x3, y3);
console.log(mouseX);
x1 = x1 + trianglespeed;
x2 = x2 + trianglespeed;
x3 = x3 + trianglespeed;
if (playing == true) {
if (x1 <= 70) {
trianglespeed = 0;
start = "Press R to restart";
x1 = x1;
x2 = x1 + 10;
x3 = x1 + 20;
lost = true;
}
}
console.log(playing, lost, win);
}
function mousePressed() {
if (lost == false) {
start = "";
trianglespeed = -10;
playing = true;
}
if (playing == true) {
if (x2 >= 80 && x2 <= 100) {
start = "you win, press R to restart";
trianglespeed = 0;
x1 = x1;
x2 = x1 + 10;
x3 = x1 + 20;
win = true;
}
}
}
function KeyPressed() {
if (keyCode == R) {
setup();
//the problem ^^^
}
}
我希望在按R键后,整个过程会重新启动,但不会重新启动。
告诉我我做错了。
答案 0 :(得分:1)
p5.js说:
在程序启动时会调用一次setup()函数。用过的 定义初始环境属性,例如屏幕尺寸和 背景颜色并加载诸如图像和字体之类的媒体作为 程序启动。每个设置只能有一个setup()函数 程序,并且在其初始执行后不应再次调用。
并有一个注释
注意:在setup()中声明的变量无法在 其他功能,包括draw()。
这意味着您不能使用setup
函数来重置值,因为它是用于代码的初始化。
您可以查看官方页面:https://p5js.org/reference/#/p5/setup
如果要更改某些值,可以使用另一个函数来处理代码。
答案 1 :(得分:1)
好,问题是这样
function KeyPressed() {
if (key == "r") {
reset();
}
}
按键功能上的K不是大写的K。