我正在尝试制作游戏,而我正在使用WASD控件。您有时需要在移动时点击,但mouseIsPressed
,mousePressed()
和mouseClicked()
未检测到它。
我只需要在按下另一个键的同时检测到一次点击。
示例代码:
function setup() {
createCanvas(windowWidth, windowHeight).mousePressed(function() {
console.log("mousePressed");
});
}
function draw() {
if (keyIsPressed) {
console.log("keyIsPressed"); // if you press a key, then click, this is still the only thing being logged
}
if (mouseIsPressed) {
console.log("mouseIsPressed");
}
}
function mouseClicked() {
console.log("mouseClicked");
}
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.js"></script>
<script src="sketch.js"></script>
</head>
</html>
答案 0 :(得分:3)
这是另一个演示问题的简单程序:
function setup() {
createCanvas(windowWidth, windowHeight);
}
function draw() {
background(255, 0, 0);
if (keyIsPressed) {
text("keyIsPressed", 100, 100);
}
if (mouseIsPressed) {
text("mouseIsPressed", 200, 200);
}
}
实际上,我认为这个问题比P5.j更普遍。打开另一个程序(我使用基本文本编辑器)并按住键,然后尝试移动鼠标。对我来说,每当我按下一个键时,我的鼠标停止响应。
然后我用谷歌搜索“按住键阻止鼠标移动”,其中有一堆结果,包括this one。事实证明,问题是由使用触控板而不是鼠标引起的。显然,触控板具有在按下键时禁用它们的设置。
使用“真正的”鼠标可以在您的程序和我的程序中完美运行。所以解决方案是更改触控板设置,或者去获取鼠标。
答案 1 :(得分:-2)
在下面的代码中,我可以同时看到鼠标和键
function setup() {
createCanvas(100, 100);
background(51);
}
function draw() {
if (keyIsPressed) {
if(key=="w"){
print("w")
} else if(key=="a"){
print("a")
} else if(key=="s"){
print("s")
} else if(key=="d"){
print("d")
}
if (mouseIsPressed) {
print("clic");
}
} else if (mouseIsPressed) {
print("clic")
}
}
这对你有用吗?