JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏
该程序是基于07年底写的一个J2ME小游戏 俄罗斯方块,将全部逻辑绘制都放到LUA脚本里来做,J2ME方面仅作一个绘制库来使用!
建立J2ME程序这里就不说了,
详见我的BLOG
http://blog.csdn.net/kome2000/article/details/4183199
由于J2ME代码比较少就全贴出来了!
midlet类就不贴了,这个BLog字符限制,可以参考别的代码
比如
http://kome2000.blog.51cto.com/969562/578555
他们的MIDlet是一样的!
主游戏控制类
汗!这个BLOG有字符限制,不能贴代码了
详见
http://blog.csdn.net/kome2000/article/details/7728959
或者到工程包里找 cGame.java吧!
这个类里使用的LUA接口稍后再说,先把代码贴完
还有一个 工具类,主要是提供了一些LUA使用的绘图函数库,就是包装一下GRAPHICS类的某些方法,仅自己使用到的,如果你喜欢可以封装更多:)
汗!这个BLOG有字符限制,不能贴代码了
详见
http://blog.csdn.net/kome2000/article/details/7728959
或者到工程包里找 Tool.java吧!
看了工程包里的代码及资源目录,你一定看到了
org.luaj.kahluafork.compiler
se.krka.kahlua
这2个包,没错这就是 kahlua 卡鲁瓦,一个J2ME上LUA的实现!遗憾的是,最新版本也是09年06月的!*_*!
什么是Kahlua(卡鲁瓦)?
中文名字念着还是比较顺口的,简单的说,kahlua是一款基于CLDC1.1且非常小巧的Lua解释器,它很容易扩展。只需要配合一个Lua编译器,就可以执行编译后的Lua源代码。目前新版本已经带了编译器。
J2me平台的lua解释器主要有mochalua和Kahlua,mochalua在08年中期后就没有人在维护和更新了,Kahlua最新版本是2009年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
最新版的源代码下载地址: http://kahlua.googlecode.com/files/kahlua-release-20090611.zip
二进制库地址: http://kahlua.googlecode.com/files/kahlua.jar
下载好后要解压kahlua-release-20090611.zip,使用src里的代码全部COPY 到你的SRC目录下
就有
org.luaj.kahluafork.compiler
se.krka.kahlua
这2个包了!
kahlua-release-20090611.zip\resources\stdlib.lua 这个文件也是我们需要的!但遗憾的是这个是源码放到工程里J2ME不认啊!:(
需要使用LUAC将这个 stdlib.lua 编译成 stdlib.lbc文件
编译方法很简单,如图
什么?你的LUAC是 非内部命令?那是你没LUA环境,
命令是luac -o stdlib.lbc d:\stdlib.lua
路径我就不详细说了!你懂得
OK,现在说一下我的 game.lua吧!
这个就是全部的游戏逻辑及绘制了,还有键盘事件偶!
汗!这个BLOG有字符限制,不能贴LUA的代码了
详见
http://blog.csdn.net/kome2000/article/details/7728959
或者到工程包里找 game.lua吧!
工程里其他文件可以忽略了!有些是测试用的垃圾代码
本来想用require "constDB" 导入其他LUA文件,但没成功!你试试吧!
另外lua调用J2ME方法的时候不是很方便,这个卡鲁瓦貌似没能解决调用多个方法的问题,害得我只好自己增加了个方法标识
- --J2ME方法ID
- METHOD_ID_drawLine = 10,
- METHOD_ID_drawString= 11,
- METHOD_ID_fillRect = 12,
- METHOD_ID_drawRect = 13,
- METHOD_ID_translate = 14,
--后面的drawLine,drawString,就对应 J2ME工程里的Tool.java类的方法了!
这个方块程序 现在没有全部移植完,我就没时间搞了,实现了方块的绘制,方块变形,等
如果你有时间可以参考我的http://blog.csdn.net/kome2000/article/details/4183199
工程代码 把这个LUA程序移植玩吧!:)
附件:http://down.51cto.com/data/2360982
本文转自 kome2000 51CTO博客,原文链接:http://blog.51cto.com/kome2000/924888
JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_5_使用LUA脚本写游戏相关推荐
- 【iOS-cocos2d-X 游戏开发之八】使用Lua脚本进行游戏开发(基础篇)
对于游戏公司而言,采用游戏脚本lua.python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则向大家简单介绍脚本的用途以及在Cocos2dx基础用法: Lua和python这些详细 ...
- 游戏编程之三 DirectX SDK简介
`视频课:[免费]跨平台APP JQuery Mobile开发-1-初探移动开发-张晨光的在线视频教程-CSDN程序员研修院 第三章 DirectX SDK简介 第一节 关于DirectX SDK ...
- 《HTML5 2D游戏编程核心技术》——第1章,第1.1节Snail Bait游戏
本节书摘来自华章出版社<HTML5 2D游戏编程核心技术>一书中的第1章,第1.1节,作者[美] 戴维·吉尔里,更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...
- LUA脚本(游戏辅助) 点击函数 区域单点多点着色
PS 这个是我自己用来记录的,有兴趣写游戏脚本的朋友请自动搜索 触动精灵官网 ,下载集成开发环境,手机模拟器,以及学习视频, nLog('我的第一个辅助游戏') –1.init init('0',1) ...
- 使用Lua脚本进行游戏开发(基础篇)
对于游戏公司而言,采用游戏脚本lua.python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则向大家简单介绍脚本的用途以及在Cocos2dx基础用法: Lua和python这些详细 ...
- 在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)
对于游戏公司而言,采用游戏脚本lua.python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则向大家简单介绍脚本的用途以及在Cocos2dx基础用法: Lua和python这些详细 ...
- linux用shell脚本写游戏,shell脚本实现猜数游戏
用shell脚本写一个猜数游戏 最近用shell写的一个猜数游戏,包括4个不同难度,脚本如下: #作者:p_小王 echo '欢迎来到猜数游戏!' while true do read -p '开始/ ...
- 怎么用java ee编程_Java EE应用程序入门 - 编程入门网
Java EE应用程序入门 时间:2011-07-06 netbeans.org 本文将详细介绍使用 EJB 3.0 技术开发企业应用程序的基础知识,而 EJB 3.0 是 Java EE 5 平台的 ...
- JAVA 并发编程之三:CountDownLatch(门闩)、CyclicBarrier(栅栏)和Semaphore(信号量) 三种并发策略
在JDK的并发包中已经提供了几个非常有用的并发工具类.CountDownLatch.CyclicBarrier和Semaphore工具类中提供了一种并发流程控制的手段,Exchanger工具类提供了在 ...
最新文章
- Xtrabackup实现数据的备份与恢复
- APP超越预期效果的6种方法
- Kernel i2c gpio spi pinctrl platform 分析讲解 (未完待续)
- SAP的资产负债表、损益表的利润体现
- 对抗canary保护技术的几种方式
- 【Python基础】Python 流程控制专题总结
- 华为诺亚开源贝叶斯优化库:超参数调优河伯、组合优化器CompBO
- 4月24日Serverless Developer Meetup上海亮相
- 存储安全与数据恢复基础手册-服务器篇
- 武汉区块链软件公司:区块链游戏和普通的游戏有什么区别?
- 系统命名与 SQL 命名之争 - 第 1 部分
- 介绍一款python类型检查工具pyright
- dlib 怎么安装vs2017_win10中的dlib库安装过程
- 游戏之旅 我的编程感悟_我的外展之旅的特别时刻
- 吴恩达《机器学习》第九章:神经网络的学习
- Apache Tika 内容抽取工具集合
- Excel表中的数据导入到数据库中
- API拦截的应用,网址劫持
- mac DOSBox快捷键
- 用Python设计杂志订阅系统