2.5 Processing中的代码
是时候用第1章中学习的知识来编写一些代码了。首先,复习一些基本的句法规则(syntax rule)。你可以编写三种类型的陈述语句:
函数调用
赋值操作
结构控制
目前为止,每一行代码都是对一个函数的调用,如图2-3所示。剩下的两种类型我会在后面的章节里讨论。每个函数都有一个名称,后面紧跟着圆括号,圆括号内是一组实参。回想下第1章,我曾用函数展示如何绘制图形(当时我称之为“命令”或者“指令”)。如果把调用函数比作一个自然语言的句子的话,函数名称就是句子的动词(“绘制”),而实参就是句子的宾语(“点0,0”)。注意每个调用的函数最后一定要以分号结束,如图2-4所示。
事实上,你已经学过好几个函数了,包括background()、stroke()、fill()、noFill()、noStroke()、point()、line()、rect()、ellipse()、rectMode(),以及ellipseMode()。如果草图中有多个函数,Processing会按照顺序依次执行函数,并将结果显示在窗口中。说到窗口,我突然意识到在第1章中我忘记了提及非常重要的一个函数—size()。size()函数可以用来设定草图窗口的大小,包括两个实参:宽度值和高度值。如果你想实现草图sketch全屏,你可以调用fullScreen()函数来替代size()函数。使用fullScreen()函数时,草图的尺寸大小和电脑显示器的分辨率是对应的。size()函数和fullScreen()函数永远都是setup()中的第一行代码,而且在任何草图中,只能使用其中一个函数。
下面是fullScreen()函数。
我们来看一个例子(见图2-4)。
图 2-4
下面还有几个需要特别注意的事项。
Processing的文本编辑器会将已知字符(有时是指保留字符(reserved word)或者关键字(keyword))用彩色来表示。这些字符通常是Processing库中可用的绘图函数、内置变量(第3章我会着重讲到变量这个概念)和常量,以及从Java编程语言中继承过来的某些特定字符。
有时,如果想要了解程序运行的状态,或者监测特定的变量数值,这时可以使用println()函数显示程序的运行信息,它位于Processing的最底端。println()函数可以自带一个或多个实参,将信息在控制台输出。如图2-4所示,在这个示例中,我将“Take me to your leader!”这个字符串用引号括起来并输出(更多关于文本的介绍前往第17章)。在调试变量的数值时,这种将信息显示到控制台的功能非常好用,也非常方便。针对排除故障也有一个特殊的按钮,它是界面顶端右侧的小昆虫形状的按钮,在第11章将会详细讨论。
左下角的数字代表了哪一行的代码被选中。同样在代码左侧可以查看该代码行的编号。
你可以在代码中写下一些注释。注释是给我们看的,因此对计算机并不起作用。通过书写注释,可以方便用户日后回顾,也有助于别人理解你写的代码,以及之后对代码进行修改等等。使用注释功能的具体方法如下:输入“//”符号,“//”后面的内容都会被Processing认定为注释内容。而对于多行注释,要使用“/*”符号作为开始,“*/”符号作为结束。
Processing初始默认模式为Java模式。它是Processing的核心,在Processing中,就是用java语言来编写代码的。Processing还提供了其他模式,这里特别要强调的是Python模式,它允许你使用Python编程语言来编写代码。你可以通过点击右上角的模式按钮尝试其他模式,如图2-4所示。
关于注释,一言以蔽之:从现在开始要养成在代码中书写注释的好习惯。尽管刚开始草图代码会非常短非常简单,但是你依然要尽量使用注释。没有注释的代码非常难以阅读和理解。当然没必要每一行代码都写注释,但事实上注释越多,往后你回顾和再使用这些代码花费的时间就会越短。同时书写注释有助于你去思考并理解代码是如何工作的。如果对自己正在进行的工作尚且无法清晰地理解,又怎么能够对正在编写的代码进行注释呢?
本书并不会一直书写注释,因为许多代码并不像在实际的程序那样非常难以阅读。相反,本书会经常使用一些“提示”作为额外的解释,这样能让你举一反三。如果你去网站看本书的示例,那么那些代码通常都是有注释的。总之,在此我要再次强调:养成书写注释的习惯!
练习2-4:创建一个空白草图,从第1章后面的内容中找一些代码,输入到Processing中。为这些代码增加注释来说明这些代码的作用。使用pintln()命令,在Processing消息区中显示信息,保存草图文件,点击运行按钮。看下文件会正常运行还是会出现错误提示。