Processing编程学习指南3.4 鼠标点击和键盘操作

3.4 鼠标点击和键盘操作


当前,你正使用setup()和draw()框架,以及mouseX和mouseY这样的关键词来构建动态的、可交互的Processing草图。但是,还有一个重要的交互形式没有讨论—点击鼠标!

点击鼠标时,如何让Processing发生相应的交互行为?为了了解这一点,你需要回到程序的运行流程中去。你已经了解setup()仅运行一次,而draw()会往复运行。那么鼠标点击应该在什么时候发生?鼠标点击(以及键盘操作)所触发的事件在Processing中被叫做响应事件(event)。如果你希望在点击鼠标时,Processing产生某些交互行为(例如“将背景颜色变为红色”),那么你需要增加一个代码块来实现这个事件。

发生一个事件时,这个响应事件“函数”会告诉程序去执行什么代码。和setup()一样,这个代码仅仅执行一次。也就是说,针对每个事件的发生仅会执行一次。而一个事件(例如鼠标点击)可以发生多次。

你需要学习两个新的函数:

mousePressed()—处理鼠标点击。

keyPressed()—处理键盘操作。

下面的这个示例使用了这两个事件函数:点击鼠标时,增加方块;按下键盘的按键时,清空所有内容。

示例3-5:mousePressed()和keyPressed()

 

在示例3-5中整个程序的流程里,我使用了4个函数。该程序以setup()函数开始,在这里对窗口尺寸和背景颜色进行初始化。接下来是draw()函数

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要记录鼠标点击次数和使用时长,你需要使用Arduino和Processing的串口通信功能。下面是一些步骤: 1. 在Arduino中编写代码,使用`Mouse.click()`函数来检测鼠标点击次数,并使用`millis()`函数来计算使用时间。 ```arduino #include <Mouse.h> unsigned long startTime; // 记录启动时间 int clickCount = 0; // 记录鼠标点击次数 void setup() { Mouse.begin(); startTime = millis(); // 记录启动时间 Serial.begin(9600); // 初始化串口通信 } void loop() { if (Mouse.getButton() == MOUSE_LEFT) { // 检测鼠标左键是否被点击 clickCount++; // 点击次数加1 } unsigned long currentTime = millis(); // 获取当前时间 unsigned long usedTime = currentTime - startTime; // 计算使用时间 Serial.print("Click Count: "); Serial.println(clickCount); Serial.print("Used Time: "); Serial.print(usedTime / 1000); Serial.println("s"); delay(1000); // 延迟1秒 } ``` 2. 在Processing中编写代码,使用`Serial`对象来接收并记录Arduino发送的数据。 ```processing import processing.serial.*; Serial myPort; // 串口对象 int clickCount = 0; // 记录鼠标点击次数 int usedTime = 0; // 记录使用时间 void setup() { size(400, 400); myPort = new Serial(this, "COM3", 9600); // 初始化串口通信 } void draw() { background(255); while (myPort.available() > 0) { // 如果串口中有数据 String data = myPort.readStringUntil('\n'); // 读取数据 if (data != null) { // 如果数据不为空 if (data.startsWith("Click Count: ")) { // 如果数据以"Click Count: "开头 data = data.substring(13); // 去掉"Click Count: ",只保留数字 clickCount = Integer.parseInt(data); // 将数字转换为整数 } else if (data.startsWith("Used Time: ")) { // 如果数据以"Used Time: "开头 data = data.substring(11); // 去掉"Used Time: ",只保留数字 usedTime = Integer.parseInt(data); // 将数字转换为整数 } } } textAlign(CENTER); textSize(32); text("Click Count: " + clickCount, width/2, height/2 - 50); text("Used Time: " + usedTime + "s", width/2, height/2 + 50); } ``` 3. 将Arduino和计算机连接,上传Arduino代码并打开Processing程序,你就可以看到鼠标点击次数和使用时长的实时记录了。 注意:在运行程序之前,确保你已经选择了正确的串口端口。如果你使用的是Mac电脑,串口端口通常为`/dev/cu.usbmodem`开头的一个字符串。如果你使用的是Windows电脑,串口端口通常为`COM`开头的一个数字。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值