移动开发框架Monkey语法简介
创始人
2024-08-02 18:21:47
0次

在前一篇文章中简单介绍了一些我曾经评估过的一些跨平台开发框架,其中提到过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的最基础框架:

  1. Import mojo 
  2.  
  3. Class MyApp Extends App 
  4.  
  5. Method OnCreate() 
  6.  
  7. End 
  8.  
  9. Method OnUpdate() 
  10.  
  11. End 
  12.  
  13. Method OnRender() 
  14.  
  15. End 
  16.  
  17. End 
  18.  
  19. Function Main() 
  20.  
  21. New MyApp 
  22.  
  23. 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

条件运算:

  1. If … Then … 
  2.  
  3. If … Then … Else … 

上面的条件语句必须写在一条上,如果要换行,则是

  1. If … 
  2.  
  3. … 
  4.  
  5. Else 
  6.  
  7. … 
  8.  
  9. 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。

另外,如果函数没有返回值,那么函数名后的冒号加返回值类型可以省略,就像我上面举的例子那样。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...