keyPressed() 在 p5 中没有激活
keyPressed() does not activate in p5
我正在尝试使用 keyPressed() 在我的 3D-space 中生成光源。但是,按下键盘上的键后,没有任何反应。我按照以下教程中的说明进行操作,看不出他和我的代码有什么区别:https://www.youtube.com/watch?v=UvSjtiW-RH8
我试图寻找教程和我的程序之间的差异,并且我尝试使用光源以外的东西作为 object/event 以使用 keyPressed() 激活(例如我尝试更改背景颜色)。
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
}
function draw() {
background(100);
push();
ambientMaterial(255, 255, 255);
rotateY(angle);
rotateX(angle);
sphere(300);
translate(200, 300);
sphere(50);
pop();
}
function keyPressed() {
pointLight(255, 55, 255, 10, 200, 400);
}
我希望在按下键盘上的某个键时能看到指示灯,但这并没有发生。没有显示错误消息。
正如 Chris G 所述:
密钥检测得很好,如果您向函数中添加类似 alert("key press") 的内容,您会注意到这一点。问题是调用光函数 a) 和 b) 只调用一次什么都不做。您需要在 draw() 循环函数中调用它,然后再添加球体。示例:jsfiddle.net/khrismuc/p503ers8
我认为这完全回答了我的问题,因此我将post这里作为公认的答案!
我正在尝试使用 keyPressed() 在我的 3D-space 中生成光源。但是,按下键盘上的键后,没有任何反应。我按照以下教程中的说明进行操作,看不出他和我的代码有什么区别:https://www.youtube.com/watch?v=UvSjtiW-RH8
我试图寻找教程和我的程序之间的差异,并且我尝试使用光源以外的东西作为 object/event 以使用 keyPressed() 激活(例如我尝试更改背景颜色)。
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
}
function draw() {
background(100);
push();
ambientMaterial(255, 255, 255);
rotateY(angle);
rotateX(angle);
sphere(300);
translate(200, 300);
sphere(50);
pop();
}
function keyPressed() {
pointLight(255, 55, 255, 10, 200, 400);
}
我希望在按下键盘上的某个键时能看到指示灯,但这并没有发生。没有显示错误消息。
正如 Chris G 所述:
密钥检测得很好,如果您向函数中添加类似 alert("key press") 的内容,您会注意到这一点。问题是调用光函数 a) 和 b) 只调用一次什么都不做。您需要在 draw() 循环函数中调用它,然后再添加球体。示例:jsfiddle.net/khrismuc/p503ers8
我认为这完全回答了我的问题,因此我将post这里作为公认的答案!