p5.js - p5.js mousePressed 有效,但 doublePressed 无效?
问题描述
在编写我自己的扫雷游戏时,我来到了一个阶段(最后一个阶段),我必须介绍标志的概念。目前,我正在使用mousePressed()
打开任何可能是地雷的单元格。但是我无法弄清楚如何标记任何单元格,就像我尝试使用的那样,doubleClicked()
但在这种情况下它不起作用。p5.js
有没有人对此有任何提示,或者任何可能简单地标记单元格的内置工具?
编辑:
https://github.com/abj54/minesweeper
我的代码在上面的 repo 中,供任何想要阅读它的人使用。就标志而言,它是让用户猜测给定单元中的哪个可能是地雷的基本指标。
解决方案
由于 dblclick 调用了事件更改,因此在同一对象上侦听展位事件是有问题的:
- 鼠标按下
- mouseup
- 点击
- 鼠标按下
- mouseup
- 点击
- 数据库点击
P5.js 检查窗口的 click/dblclick 事件,因此您不应同时使用这两个函数(click 和 dblclick)。但是你可以使用带有 Timeout 的 click 事件来解决这个问题。
var clicked=false, clickTimeout=300;
function mouseClicked(){
if(!clicked){
clicked=true;
setTimeout(function(){
if(clicked){
console.log("single click");
clicked=false;
//single ClickStuff
}
},clickTimeout);
}else{
clicked=false;
console.log("double click");
//double click Stuff
}
}
因此,如果调用第二次点击并做出反应,您正在等待 clickTimeout 定义的时间量。
推荐阅读
- amazon-web-services - 在“Amazon Linux AMI”上安装 make 4.2
- gpu - Slurm 超额认购 GPU
- c - 标准 C 库中缓冲区大小的特殊宏是什么?
- ios - 子类化 UISlider 以使用 IBDesignable/IBInspectable 自定义拇指图像?
- javascript - 使用 .map() 在 jquery 中分组
- maven - requireProperty 是否不需要 Maven 强制执行器中的典型 Maven 属性?
- firebase - 带有自定义令牌的 Firebase 存储通配符规则
- mysql - OR 运算符减慢 MySQL 查询速度
- r - 如何对变量设置条件
- android - RecyclerView 在最大高度为 WRAP_CONSTRAINT 时无法正确包装其内容