天天看點

Processing程式設計學習指南2.5 Processing中的代碼

<b>2.5 processing中的代碼</b>

<b></b>

是時候用第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消息區中顯示資訊,儲存草圖檔案,點選運作按鈕。看下檔案會正常運作還是會出現錯誤提示。