Corona開發5分鐘入門教程
關于Corona
如果你正在做iOS應用,或者關注過iOS開發,那么一定聽說過Corona這個名字。
在蘋果修改了app審核策略,允許使用第三方語言開發應用之后,Corona,這個曾經只能在破解系統上玩一玩的項目終于被更多人所關注,售價也從99美元漲到了299美元,當然現在又降到了149美元.不過看看他長長的Showcase列表就不難發現,這也確實是一個值得關注的引擎。
簡單來說,使用Corona的優勢主要有這么幾點:
◆不需要使用復雜的Objective-C,不需要經歷繁瑣的編譯過程,使用更加簡單的,解釋型的Lua語言來開發應用
◆可以用你的Windows PC來開發iOS應用,當然如果要發布到AppStore還是需要一臺iMac或MacBook (Pro)
◆iOS與Android平臺的***融合,應用移植不再是噩夢
◆豐富的API以及第三方庫的集成,讓應用開發變得更加簡單快捷
開發方法
如果你已經下載安裝了Corona SDK,那么應該也注意到了,在CoronaSDK目錄下只有一個Corona Simulator和一個Terminal,還有一個debuger,沒有編輯器。是的,Corona的開發還是主要信賴于代碼編寫,當然在Corona網站的Tools里能夠找到圖形化的開發工具,也可以嘗試一下。
運行模擬器的方法也有三種:
◆直接運行Corona Simulator,一般在演示運行app的時候使用,你將看不到任何打印出來的錯誤信息
◆運行Corona Terminal,這是日常開發最常用的方法,它將會開啟模擬器,同時會出現一個終端窗口用于顯示打印的調試信息和錯誤信息
◆運行debugger,這將會開啟模擬器和一個帶交互功能的終端,在需要調試時使用,當然你需要熟悉gdb之類的調試工具
當模擬器運行起來的時候,從File — Open找到你需要測試的app的main.lua并打開,這時在模擬器窗口上會出現app畫面,同時終端窗口會出現打印信息。就像下圖這樣:
Hello World
學習的***方法是實踐,所以讓我們從最簡單的一個例子開始,創建一個app。是的,所有的例子都是從“世界你好!”開始的。
使用一個你最喜歡的文本編輯器,創建一個文本文件,敲入以下內容
- print("Hello World")
然后把文件保存 為main.lua,注意app的主文件必須是main.lua,***是把這個app的所有相關文件放到一個單獨的目錄下。一般情況下每個app都應該有其獨立的目錄,比如這里我們就叫他Sample1。
然后按照上面所說的,在Corona Simulator中File –> Open找到剛剛保存的main.lua文件并打開,如果一切順利的話,你將什么也看不到。是的,什么也看不到!不過你要是通過Simulator打開的模擬器,那么在終端窗口里還是能夠看到些東西,就像下面這樣:
那個Hello World就是我們剛剛輸出的。
Simulator vs Terminal
剛剛我們的print(“Hello World”)語句確實產生了作用,不過這顯示不是我們所要的效果,我們希望的是能夠在app里輸出一行文字,但是現在到了終端窗口里面。那么,模擬器與終端有什么區別呢?
簡單來說,終端窗口主要是用來輸出調試/警告/錯誤信息用的,雖然在這正式的app里看不到,但對于我們的開發階段還是很有用的,我們不需要使用復雜的debugger就能夠了解程序現在運行的怎么樣了。
Hello World on the Simulator
如果要在模擬器界面上輸出文本,我們需要另外的函數,這些函數都來自于 Corona graphics library。
在這里,我們可以這樣做:
- local textObject = display.newText("Hello World", 50, 50, nil, 24)
- textObject:setTextColor(255,255,255)
再次在模擬器上運行一下這個程序,你將會看到下面的結果:
是的,這正是我們想要的。關于上面兩行代碼的細節就不過多描述,如果你是一個程序員,這沒有什么難的,如果你不是,好吧,lua語言確實不怎么難。
需要注意一下的是display.newText和textObject:setTextColor,這兩個函數調用,一個用的是.號,一個用的是:號,這是lua語言的兩種函數調用方式,或者說:號調用其實是.調用的語法簡化形式,具體的描述還是需要通過lua手冊來了解。
使用Corona SDK的一個好處,或者說是使用lua這類動態語言的一個好處就是你可以很方便的看到修改后的效果,而不需要像Objective-C那樣經歷編譯-鏈接過程。當你修改了main.lua文件,保存它,這時Simulator會主動提醒你文件已更新,是否需要重新加載,選“是”就能立即看到修改后的效果。當然,你也可以在運行過程中主動要求重新加載app,使用Command -R即可,不需要等待編譯,也不需要關閉模擬器再重新打開。