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章末尾创造的代码以动态程序的方式重新编写。尽管看上去和之前是一样的,但要对你的成果充满信心!

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值