移動開發框架Monkey語法簡介
在前一篇文章中簡單介紹了一些我曾經評估過的一些跨平臺開發框架,其中提到過Monkey,不過這個框架目前還太過簡陋,如果要用它來做一個商業的App還有太多的工作要做,所以目前階段不會再花太多精力在上面,但是之前評估的時候也仔細閱讀了它的教程,并跟著寫過幾個Sample,所以對它也還有一些知識的整理。

Monkey( http://www.monkeycoder.co.nz)是一個與Corona類似的框架,但是比Corona要稍好一些,如果單從開發者角度來看的話。
Monkey使用Bliz Basic語言開發應用,然后編譯生成目標平臺的Project,再將這個Project按照正常開發流程編譯生成App。這個流程與Corona基本相 似,不過編譯的過程是在本地進行的,所以可以在目標Project生成之后再進行修改,這樣一些在特定平臺上的功能可以分別進行添加和修改。
另外Monkey的授權費比Corona要低得多,只需要一次付費,授權費也只需要120美元。
Monkey的問題在于它還處在開發的初期階段,目前發布的版本只實現了最基礎的功能,對于游戲開發來說,你還需要自己添加物理支持,粒子系統,如果你想要加入網絡功能的話也得自己去做。當然社區里有熱心用戶公開了他們的一部分代碼。
先來看一個Monkey App的最基礎框架:
- Import mojo
- Class MyApp Extends App
- Method OnCreate()
- End
- Method OnUpdate()
- End
- Method OnRender()
- End
- End
- Function Main()
- New MyApp
- End
雖然作者反復強調你不需要是一個程序員,你不需要懂數學,你不需要會寫代碼,甚至You don’t need any special skills。BUT,如果你不懂程序,上面這12行英文我還是很難跟你解釋清楚,SO,如果你懂了,就繼續,Else,Return!J
開個玩笑。
Monkey語言還是比較簡單的,類Basic語法,寫起來就跟自然語言一樣,你甚至可以把上面的代碼當作一段英文來讀。是的,Read It!
下面是一些語法知識,如果你看懂了上面那12行代碼,下面的你也很好理解。
變量:
與其他語言類似的語法規范,字母數字與下劃線的組合,不能以數字打頭。
內置變量類型有Int,Float,String,分別代表什么你也懂的。
變量的聲明使用Local關鍵字,當然有時候使用的是Field關鍵字。
數學運算:
+、-、*、/是最基本的,^是指數去處,比如3 ^ 2 = 9
條件運算:
- If … Then …
- If … Then … Else …
上面的條件語句必須寫在一條上,如果要換行,則是
- If …
- …
- Else
- …
- EndIf
邏輯運算:
=、<、>、<>、<=、>=
大部分你應該都見過,只需要注意一下,相等只有一個=,不等是<>,也許你在某種語言里也見過這樣用的。
循環語句:
Repeat … Forever是永遠循環
一般會這樣用:
Repeat
If … Then Exit
Forever
還有
Repeat
…
Until …
以及
While …
…
Wend
這些分別代表什么意思你也懂的
函數:
Function Name() … End
Function Name(param:String) … End
函數的默認參數:Function Name(ammo:Int = 10) … End
與其他語言類似,默認參數也只能出現在參數列表的最后面
同樣的,函數也能有返回值。你知道什么是返回值。
類和對象:
還記得寫在最開始的那12行代碼嗎?那里就定義了一個類,然后創建了一個對象
注意類中定義的變量使用Field關鍵字,不是Local
在我嘗試著寫代碼時遇到過的兩個問題,這里再重點提出來一下,我曾在這上面花了點時間來查找原因:
全局函數用關鍵字Function,Class的函數叫Method。如果把Class的函數也用Function定義,Monkey并不會報錯,但這些Function都不會被回調。
函數中的變量聲明用Local,Class中的變量聲明用Field。
另外,如果函數沒有返回值,那么函數名后的冒號加返回值類型可以省略,就像我上面舉的例子那樣。