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()函数,它无限循环。由于draw()函数中并没有代码,因此窗口依旧是空白。然而,由于我增加了两个新的函数:mousePressed()和keyPressed(),这两个函数中的代码正翘首以待。当用户点击鼠标(或者按下键盘的按键)的时候,它即刻产生交互行为,执行其内部的代码,而且仅仅执行一次。

练习3-8:在draw()函数中增加background(255)。为什么程序会停止运行?

我现在已经准备好为Zoog添加下面所有的功能元素了。

Zoog的整个身体跟随鼠标移动。

Zoog的眼睛颜色由鼠标位置决定。

Zoog的腿部,由之前的鼠标位置到当前的鼠标位置进行绘制。

点击鼠标时,窗口上将会显示一条信息:“带我去见你的首领!”(Take me to your leader!)

注意示例3-6新增加的frameRate()函数。frameRate()函数需要至少一个数值用来设定Processing运行draw()时的速度。比如frameRate(30)意味着每秒30帧,这个数值也是传统计算机动画的速度。如果你不使用frameRate()函数,那么Processing会以每秒60帧来运行草图。由于每个电脑可以按照不同的速度运行,你可以使用frameRate()函数确保多台电脑的运行速度相同。

不过这个帧频设置只是其运行的最大值。如果你的草图要绘制一百万个矩形,那么会耗时很长,运行速度也很慢。

示例3-6:可以互动的Zoog

 

 

 

 

第一节课的项目

(事实上,通过第1章~第3章中的课后练习,你已经完成这个项目的大部分内容了。这个项目是将所有课程内容元素组合到一起。你既可以从头开始一个新的设计,也可以使用课后练习中的内容。)

1.使用RGB颜色和简单的图形函数来设计一个静态的图形。

2.使静态的图形草图变为动态的草图,也就是说草图可以和鼠标进行互动。比如图形跟随鼠标运动、根据鼠标移动改变图形尺寸、改变颜色等。

使用下面的空白为你的项目设计草图,做笔记和书写伪码。

相关文章
|
人工智能 搜索推荐 算法
爱思唯尔的KBS——模板、投稿、返修、接收的总结
爱思唯尔的KBS——模板、投稿、返修、接收的总结
5141 3
|
资源调度 算法 关系型数据库
5G 物理层|带你读《5G无线网络规划与设计》之十
使用非授权频谱是移动通信系统扩展频谱资源的重要手段之一。非授权频谱上的业务非常繁忙,抢占信道最好的方法是一旦发现信道空闲马上开始传输。在 LTE 中,资源调度以时隙为单位,即使监听到信道空闲,也必须等到下一个时隙开始进行传输
5G 物理层|带你读《5G无线网络规划与设计》之十
|
人工智能 安全 算法
量子计算对传统计算的影响:重塑计算领域的未来
【8月更文挑战第26天】量子计算作为新兴技术正从理论步入实践,其独特的能力正在重塑计算领域。通过利用量子比特的叠加态特性,量子计算在处理特定问题上展现出了超越传统计算机的优势,尤其是在大规模质因数分解、优化问题及复杂物理系统模拟方面。它不仅带来了强大的计算能力,还对传统加密算法构成挑战,促使开发新的量子加密技术。此外,量子计算技术的发展将进一步推动计算机科学、数学等领域进步,并在物理模拟、金融、人工智能等多个领域拓展应用。尽管面临技术成熟度、制造成本及可靠性等方面的挑战,但随着技术的进步,量子计算有望在未来取得突破性进展,为社会带来更多便利、高效和安全的计算体验。
|
人工智能 数据可视化 数据中心
2025 FinOps 状况报告解读
要任务,取代了工作负载优化。企业对 FinOps 的需求从单纯的技术优化转向更广泛的 IT 成本管理,强调自动化和工具投资。此外,FinOps 正与 ITFM、ITAM 和 TBM 深度融合,但 ESG 整合进展缓慢。AI 投资方面,金融行业更倾向于私有云和数据中心,而大多数企业则优先选择公有云。总体而言,FinOps 已成为企业 IT 成本管理的核心,未来将更加注重成本透明化和业务价值量化。
429 12
|
机器学习/深度学习 缓存 运维
智能化运维:机器学习在故障预测与自动修复中的应用
随着信息技术的飞速发展,企业系统日益复杂,传统运维模式面临巨大挑战。智能化运维作为一种新兴趋势,通过集成机器学习算法,实现对系统故障的预测和自动修复,显著提高运维效率与准确性。本文深入探讨了智能化运维的概念、关键技术及其在故障预测和自动修复方面的应用实例,旨在为读者提供一种科学严谨、数据导向的视角,理解智能化运维的价值与实践路径。
642 27
|
存储 传感器
Landsat遥感影像数据的批量下载:USGS
本文介绍在USGS网站批量下载Landsat系列遥感影像的方法~
1359 1
Landsat遥感影像数据的批量下载:USGS
|
Java Linux 网络安全
树莓派的开发环境搭建教程
本教程详细介绍如何在树莓派上搭建开发环境,包括系统安装、配置网络、设置开发工具等步骤,适合初学者快速上手。
|
机器学习/深度学习 PyTorch TensorFlow
ONNX 与量化:提高模型效率
【8月更文第27天】随着人工智能技术的广泛应用,模型部署变得越来越重要。为了在资源受限的设备上运行复杂的机器学习模型,模型量化技术成为了一种有效的手段。Open Neural Network Exchange (ONNX) 作为一种开放格式,支持在不同框架之间交换训练好的模型,同时也支持模型量化。本文将探讨如何结合 ONNX 和模型量化技术来提高模型的效率,减少模型大小并加快推理速度。
2778 2
|
存储 消息中间件 网络协议
Linux 系统编程从入门到进阶 学习指南
本文旨在为初学者提供一个清晰的 Linux 系统编程入门指南,带你步入 Linux 系统编程的世界,从基本概念到实用技能,一步步建立起您的知识体系。
Linux 系统编程从入门到进阶 学习指南
|
API
Tushare
【6月更文挑战第9天】
1865 4