Processing编程学习指南3.2 我们的好朋友:setup()和draw()

简介:

3.2 我们的好朋友:setup()和draw()


刚从马拉松赛跑中归来的你肯定满是疲倦。为了更好地学习Processing,你要将刚刚学习的知识迅速应用到你的第一个动态Processing草图当中去。和第2章中的静态示例不同,这个程序会持续不断地运行(也就是说直到用户退出为止)。这将通过使用两个“代码块”(block of code)来完成:setup()和draw()。严格意义上讲,setup()和draw()都是函数。后面章节会深入探讨如何定义你自己的函数。现在,你就把他们暂且理解为需要写代码所在的两个区域。

什么是代码块?

代码块是任何一段由大括号包围的代码。

 

几段代码之间也可以互相嵌套,例如:

 

这是一种非常重要的代码构建方式,它允许你在一大堆代码中,将代码分组为独立的代码块分别进行管理。编程的一个惯例是在每个代码块的每一行都缩进,使得代码更具可读性。Processing也可以帮助你整理格式,你可以通过“编辑”→“自动对齐”来实现。这能够让你更加方便管理诸多的代码块,尤其是后面章节的示例会变得更加复杂,因而管理代码就更加重要。至于目前,你唯一要做的事情是学习两个简单的代码块:setup()和draw()。

 

让我们来看下一开始你会觉得句法非常奇怪的setup()和draw(),如图3-1所示。

诚然,图3-1中的代码由许多部分构成,看似非常复杂以至于会让你感到迷惑:我已经讲过大括号表明了一个代码块的起始位置,但是为什么在setup和draw的后面还会有小括号呢?噢,我的天呐,这里的void又是什么?它让我感到异常困惑!眼下,你不得不适应在并不了解所有事情的情况下使用Processing,随着本书内容的逐步展开,更多的概念会被阐述,到那个时候你就会理解这些句法的真正内涵了。

现在,我们把注意力集中到图3-1中的句法结构,它控制着整个程序的运行流程,如图3-2所示。

 

代码是如何运行的?当你运行一个程序,它会严格地按照指令运行:首先执行setup()中的代码,然后执行draw()中的代码。这个运行顺序就像这样:

1a, 1b, 1c, 2a, 2b, 2a, 2b, 2a, 2b, 2a, 2b, 2a, 2b, 2a, 2b…

现在,我会将Zoog的示例以动态草图的方式重写,如示例3-1。

示例3-1:作为动态草图的Zoog

 

在Processing里运行示例3-1中的代码。是不是看上去很奇怪?你会发现窗口中的内容没有任何变化。这看起来就是静态的草图!这是怎么回事?难道这一节一直以来的讨论都是徒劳?

事实上,如果你仔细检查下代码,你会发现在draw()函数中的变量没有任何变化。代码每循环一次,程序每次执行相同的指令。所以,是的,程序一直在运行,每次都在窗口重新绘制,只是由于每次绘制的内容是一样的,所以它看起来是静止的!

练习3-2:将你在第2章末尾创造的代码以动态程序的方式重新编写。尽管看上去和之前是一样的,但要对你的成果充满信心!

 

相关文章
|
23天前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
64 1
|
存储 安全 Go
Go 开发常用操作技巧--channel
在 Go 语言中,提倡使用通信来共享内存,而不是通过共享内存来通信,这里的通信就是通过 channel 发送接收消息的方式进行数据传递,而不是通过修改同一个变量。
138 0
Go 开发常用操作技巧--channel
|
编译器 测试技术 Go
Go 语言入门很简单:技巧和窍门 (Tips and Tricks)
本节将随着时间的推移而增长,但主要目标是分享一些有经验的开发人员在一段时间内发现的技巧。希望这些技巧能让新用户更快地提高工作效率。
|
前端开发 JavaScript
FastAPI 学习之路(三十八)Static Files
FastAPI 学习之路(三十八)Static Files
FastAPI 学习之路(三十八)Static Files
|
存储 安全 程序员
Libra教程之:来了,你最爱的Move语言
Libra教程之:来了,你最爱的Move语言
|
存储 安全 程序员
Libra教程之:move语言的特点和例子
Libra教程之:move语言的特点和例子
Libra教程之:move语言的特点和例子
|
编译器 Shell 测试技术
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
152 0
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
|
存储 数据库
|
Android开发 C++ 开发工具
Thinking In C++笔记和例子
发现很多编程的地方都离不开C++,想要深入android底层更需要学习C/C++,之前虽然学过但是没有深入,花了20多天的时间完整的把上卷撸了一遍。所以这次的笔记全部写在项目里:github地址:Thinking In C++。
1198 0