Getting Started with Monkey

之前一篇文章中我提到过Monkey这个框架,这次再来详细了解一下。

 

Monkey简介

Monkey诞生于新西兰的Blitz Research Limited,属于其研发的一系列游戏编程语言的最新一种,这一系列语言包括Blitz Basiz, Blitz 3D, Blitz Max等。单从语法角度来看,Monkey相当于是Java与Basic的综合体。
Monkey是一种编程语言,同时也是一个解释器,他能将自己翻译成多种目标平台语言,包括Object-C、Java、Html、ActionScript等等,这样用Monkey编写的App就能发布到多个平台。
如果对CoronaTitanium有过了解的话应该会知道,Corona是在App中包含了lua解释器,Titanium则包含了一个自己实现的JS引擎,这相当于在目标平台上先跑一个虚拟机,然后在虚拟机上再跑应用开发者自己写的App。与之类似的还有使用Mono虚拟机的Unity 3D,以及flash也可以算作是虚拟机应用。
Monkey则与Corona、Titanium有着完全不同的实现方式。如前所述,使用Monkey开发的应用最终会被翻译成目标平台上的Native Code,再使用目标平台的开发工具编译链接生成最终的App,这样App就相当于是为不同的平台使用其专有语言及API所编写,效率及自由度都完全由开发者自己控制。
好了,我们来看看怎样用Monkey构建APP吧。

 

Monkey的开发约定

Monkey带一个IDE开发环境,你可以在里面编辑Monkey脚本,编译生成目标平台代码以及单步调试,还可以在这里浏览帮助文件。Monkey的代码编写也比较简单,但是需要遵守一些约定:

  • 所有的Monkey源文件以.monkey结尾
  • Monkey App必须有一个唯一的Main函数,这是应用的入口,你懂的
  • Monkey代码全部由函数组成,也就是说不允许出现全局名字空间的变量申明及语句. 当翻译为目标代码后,你可以随意修改除Begin/End块包起来的以外的代码,注意这中间的一定不要修改,后果你也懂的
  • 一般来说会使用Mojo模块来构建App,当然你也可以使用社区里其他开发者提供的一些框架
  • Mojo模块对文件及目录命名有一定要求,需注意
  • 注意在App的OnCreate方法被调用之前,Mojo的函数都不能被调用
  • Mojo是基于回调的框架实现,App的主循环由Mojo提供,你只需要处理好事件回调即可,也不要去找主循环到底在哪里
  • Mojo目前不处理resizeing事件,因为不同平台对该事件的处理差异较大,如果需要的话在目标平台代码生成之后自己修改
  •  

    Monkey对不同平台的支持与要求

    HTML5

    你需要一个兼容html5的浏览器html5使用canvas来进行图像绘制,如果要修改canvas大小,你需要在目标平台代码翻译好后在js代码中修改

    GLFW

    GLFW是一个开源的OpenGL框架,能够用来构建Windows及Mac OS X平台的客户端应用

    在Windows环境下你需要安装Microsoft Visual C++ 2010 Express

    在Mac OS X环境下你需要安装Xcode 3.2.5

    这些工具都是用来将Monkey翻译出来的目标平台代码编译为最终应用的,下面的一些要求也是类似

    ANDROID

    你需要安装Android SDK,Java SDK 1.6

    如果是在Windows平台下开发,还需要安装Ant 1.8

    另外Android SDK至少应为 SDK Platform Android 2.1 API7
    Flash你需要安装Flex SDK和Java SDK1.6Flex SDK是免费的

    XNA

    你需要安装Visual C# 2010 Express和XNA Game Studio 4.0

    IOS

    你需要有一台Mac电脑,并且安装了Xcode 3.2.5和iOS 4.0 SDK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值