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

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

时间: 2024-10-29 05:43:33

Processing编程学习指南3.4 鼠标点击和键盘操作的相关文章

Processing编程学习指南导读

前 言 Learning Processing:A Beginner抯 Guide to Programming Images, Animation, and Interaction, Second Edition 本书讲的是什么 本书讲了一个故事.一个关于解放与自由的故事,一个关于逐步了解计算机基础知识的故事.通过编写代码,可以创造属于你自己的多媒体设计,而不必拘泥于已有的软件工具.这个故事不仅仅是为科学家和工程师准备的,同时也是为你准备的. 本书是为谁准备的 本书是为初学者准备的.如果你到目

Processing编程学习指南3.1 程序的运行流程

摘要 交 互 你记住,眼前所有这一切,不过是源于一个梦想和一只小鼠. -华特·迪士尼(Walt Disney) 想象力的特点是流动性,而不是凝固性. -拉尔夫·沃尔多·爱默生(Ralph Waldo Emerson) 本章主要内容: 电脑程序的运行流程 setup()和draw()的概念 鼠标交互 你的第一个动态Processing草图 掌握事件的概念,比如鼠标点击和键盘敲击 3.1 程序的运行流程 如果你曾经玩过电脑游戏,或者和一个数码艺术装置进行互动,又或者在凌晨三点看到电脑启动屏幕保护程序

Processing编程学习指南2.9 你的第一个草图

2.9 你的第一个草图 现在,你应该下载并完成了Processing的安装,理解了基本菜单和界面窗口,并且了解了在线参考文档,是时候编写代码了.正如我在第1章中所提及的,本书的第一部分内容将会沿用一个案例来阐述编程的基本组成元素:变量.条件语句.循环.函数.对象,以及数组.当然书中也会穿插别的示例,但是一直沿用一个示例的好处在于:它能够更好地让你看到电脑编程各个基本元素之间是如何循序渐进.互相依存的. 这个示例将会根据Zoog的故事来展开,Zoog是我们的新朋友,它一开始仅仅是一个静态的简单图形

Processing编程学习指南1.6 自定义颜色取值范围

1.6 自定义颜色取值范围 RGB颜色取值为0-255,但这并不是Processing处理颜色的唯一方法.在后台的计算机内存中,颜色通常是以一系列24位(在有alpha值的情况下是32位)的方式进行计算的.不过,Processing允许你以任何喜欢的方式来自定义颜色的取值范围,它允许你使用计算机可以理解的任何数字.例如,你可能倾向于将颜色以0到100的方式(就像百分比)来定义颜色.你可以在Processing中使用colorMode()函数来实现.   上述代码的意思是:"好的,我想以红.绿和蓝

Processing编程学习指南3.3 跟随鼠标移动

3.3 跟随鼠标移动 思考下:如果在绘制图形的函数中,我们并不输入具体数值,而是输入"鼠标的横坐标"(the mouse抯 x location)或者"鼠标的纵坐标"(the mouse抯 y location),会发生什么?   实际上,在代码中,你不能直接使用上述过于具体的描述性语言,你必须使用关键词mouseX和mouseY来描述鼠标的横坐标和纵坐标. 示例3-2:mouseX和mouseY   练习3-3:当你把background()函数移动到setup(

Processing编程学习指南1.1 坐标纸

摘要 像 素 千里之行,始于足下. -老子 本章主要内容: 明确像素和坐标的概念 绘制基本图形:点.线.矩形.椭圆 颜色:灰度.RGB 颜色:alpha透明度 请注意,你在本章并不会真正开始编程!你只是使用基于文本的指令在屏幕上创造图形,请尽情享受这个过程带给你的愉悦.事实上,这些文本指令就是"代码"! 1.1 坐标纸 本书会教授你如何通过计算媒介进行编程,我们以Processing开发环境(http://www. processing.org)为基础进行讨论和举例.在一切开始之前,你

Processing编程学习指南1.4 RGB颜色

1.4 RGB颜色 前面几节的内容帮助你学习了像素坐标.图形尺寸等基础知识.现在是时候学习数位色彩的基础知识了.回想一下童年,还记得手指画吗?通过混合最基础的三种原色,我们可以得到任何颜色.如果将所有颜色混合在一起,会导致浑浊的棕色.而且你混合的颜料越多,就变得越暗. 数位色彩(digital color)同样是混合三种基础颜色来实现的,但其运行机制和绘画颜料有所不同.首先,数位色彩的色光三原色是不同的:红.绿和蓝(RGB三个字母所对应的red.green和blue).其次,数位色彩以光来合成颜

Processing编程学习指南1.2 绘制基本图形

1.2 绘制基本图形 本书绝大部分的编程示例都是自然可视的.不论你最终希望利用Processing学习制作交互游戏,还是艺术算法,还是动态logo设计(在这里,思考一下你学习Processing的目的),最核心的是,每一种视觉编程都包含像素的设定.了解Processing运行方式的最简单方法是首先学习绘制基本图形.这和在小学里学习绘画并没有太大区别,只是这里的工具由蜡笔变成了代码. 首先,从图1-4中的四个基本图形开始. 针对每个图形,先问下自己需要什么数据信息才能确定图形的坐标和大小(后面还会

Processing编程学习指南2.1 让Processing来拯救你

摘要 Processing 未来计算机的重量也许不超过1.5吨. -美国<大众机械学>(Popular Mechanics)杂志,1949 带我去见你的首领. -Zoog,2008 本章主要内容: 下载和安装Processing Processing界面 Processing速写本 编写代码 错误 Processing 参考文档 运行按钮 你的第一个草图 2.1 让Processing来拯救你 既然你已经掌握了图形以及RGB颜色的基本知识,现在是时候将学到的知识运用到编程中了.幸运的是,你将使