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