失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏

JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏

时间:2022-06-04 11:06:28

相关推荐

JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏

该程序是基于07年底写的一个J2ME小游戏 俄罗斯方块,将全部逻辑绘制都放到LUA脚本里来做,J2ME方面仅作一个绘制库来使用!

建立J2ME程序这里就不说了,

详见我的BLOG

/kome2000/article/details/4183199

由于J2ME代码比较少就全贴出来了!

midlet类就不贴了,这个BLog字符限制,可以参考别的代码

比如

http://kome2000./969562/578555

他们的MIDlet是一样的!

主游戏控制类

汗!这个BLOG有字符限制,不能贴代码了

详见

/kome2000/article/details/7728959

或者到工程包里找 cGame.java吧!

这个类里使用的LUA接口稍后再说,先把代码贴完

还有一个 工具类,主要是提供了一些LUA使用的绘图函数库,就是包装一下GRAPHICS类的某些方法,仅自己使用到的,如果你喜欢可以封装更多:)

汗!这个BLOG有字符限制,不能贴代码了

详见

/kome2000/article/details/7728959

或者到工程包里找 Tool.java吧!

看了工程包里的代码及资源目录,你一定看到了

org.piler

se.krka.kahlua

这2个包,没错这就是 kahlua 卡鲁瓦,一个J2ME上LUA的实现!遗憾的是,最新版本也是09年06月的!*_*!

什么是Kahlua(卡鲁瓦)?

中文名字念着还是比较顺口的,简单的说,kahlua是一款基于CLDC1.1且非常小巧的Lua解释器,它很容易扩展。只需要配合一个Lua编译器,就可以执行编译后的Lua源代码。目前新版本已经带了编译器。

J2me平台的lua解释器主要有mochalua和Kahlua,mochalua在08年中期后就没有人在维护和更新了,Kahlua最新版本是6月11日的,本次示例就以该版本为基础。

Kahlua和Mochalua的区别?

Mochalua是一个目标尽可能完整实现Lua C功能的解释器,而Kahlua目标是实现LUA JVM最小功能集合的解释器,并且Kahlua在不增加额外开销的情况下,尽可能的模拟实现更多的Lua原版的库函数。所以两者的目标是不同的,一个是尽可能完整,一个是尽可能精简到够用。 毕竟Mochalua原先是给一个GPS项目移植平台使用的,是由一个公司开发的。

Kahlua的目标是jar尽可能的小,只包含核心功能的jar文件为56KB,Mochalua则有200多KB,对于java游戏而言,当然Jar越小越好。Kahlua的代码也非常轻量级,原先的版本只有4605行代码,而Mochalua有16951行代码。所以对比后,哪个更适合你,你可以根据情况决定了!!

下载Kahlua

最新版的源代码下载地址:/files/kahlua-release-0611.zip

二进制库地址:/files/kahlua.jar

下载好后要解压kahlua-release-0611.zip,使用src里的代码全部COPY 到你的SRC目录下

就有

org.piler

se.krka.kahlua

这2个包了!

kahlua-release-0611.zip\resources\stdlib.lua 这个文件也是我们需要的!但遗憾的是这个是源码放到工程里J2ME不认啊!:(

需要使用LUAC将这个 stdlib.lua 编译成 stdlib.lbc文件

编译方法很简单,如图

什么?你的LUAC是 非内部命令?那是你没LUA环境,

命令是luac -o stdlib.lbc d:\stdlib.lua

路径我就不详细说了!你懂得

OK,现在说一下我的 game.lua吧!

这个就是全部的游戏逻辑及绘制了,还有键盘事件偶!

汗!这个BLOG有字符限制,不能贴LUA的代码了

详见

/kome2000/article/details/7728959

或者到工程包里找 game.lua吧!

工程里其他文件可以忽略了!有些是测试用的垃圾代码

本来想用require "constDB" 导入其他LUA文件,但没成功!你试试吧!

另外lua调用J2ME方法的时候不是很方便,这个卡鲁瓦貌似没能解决调用多个方法的问题,害得我只好自己增加了个方法标识

[vb]view plaincopy --J2ME方法IDMETHOD_ID_drawLine=10,METHOD_ID_drawString=11,METHOD_ID_fillRect=12,METHOD_ID_drawRect=13, METHOD_ID_translate=14,

--后面的drawLine,drawString,就对应 J2ME工程里的Tool.java类的方法了!

这个方块程序 现在没有全部移植完,我就没时间搞了,实现了方块的绘制,方块变形,等

如果你有时间可以参考我的/kome2000/article/details/4183199

工程代码 把这个LUA程序移植玩吧!:)

附件:/data/2360982

本文转自 kome2000 51CTO博客,原文链接:/kome2000/924888

如果觉得《JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。