LGame(Android及J2SE游戏引擎)入门示例——如何构建一个游戏
来源:互联网 发布:淘宝七色谷 编辑:程序博客网 时间:2024/04/30 23:22
较早前LGame示例下载地址:http://loon-simple.googlecode.com/files/LGame-Simple-0.2.5.7z
最新版LGame(0.2.6)下载地址:http://loon-simple.googlecode.com/files/LGame-0.2.6.rar
1、如何启动LGame
目前的LGame提供有J2SE以及Android两个开发版本,两版的主要类及函数虽然相同,但由于Android版对应于手机环境,而J2SE版对应于PC环境,所以依旧有少许的差别。
J2SE版:
在J2SE环境下,只需要在Main函数中构造如下内容即可。
Android版:
而在Android版中,我们则需要分两步走,一是需要配置相关的AndroidManifest.xml文档。
如下所示:
而调用的方法如下:
这时LGame框架就会根据我们所实现的不同Screen,来展示我们的游戏了(很简单吧)。
2、如何构建Screen类
Screen是一个抽象类,也是LGame框架所提供的游戏界面展示器,其中封装了基本的图形接口与相关的操作设备交互函数,在LGame框架中,可以直接作为游戏界面进行展示的Screen共有三种。
一、Screen
即最基本的Screen,包含了最基本的Screen函数,默认自动刷新游戏画面(根据FPS所设定的速度),不提供repaint以及getLGraphics方法,是提供LGame框架调用的最基本Screen形态。
J2SE版使用方式如下:
另外,在Screen中还有一个重要的alter函数,我们可以通过重载alter函数实现最简单的定时操作,譬如:
//设定计时器,每隔1秒允许执行一次
LTimer timer = new LTimer(LSystem.SECOND);
//重载alter函数
public void alter(LTimerContext context){
if(timer.action(context.getTimeSinceLastUpdate())){
}
}
Android版使用方式如下:
Android版Screen API与使用方法基本等价于J2SE版,但由于手机与PC间功能有所差别,所以具体的API名及函数有所不同。
关于alter函数部分完全一致。
二、ThreadScreen
J2SE版:
ThreadScreen是一个实现了Runnable接口的Screen,它采用double buffer方式将绘图与业务线程分离,gameLoop函数中即是一个独立的线程。
与标准Screen的其它区别在于,ThreadScreen可以通过getLGraphics或getDraw(Draw类为LGraphics的简化封装)函数直接获得对LGraphics的操作权,并非一定要通过drawScreen函数绘图。
Android版:
J2SE与Android版的差别仅仅在于鼠标、键盘等设备函数上,其它细节相同。
三、CanvasScreen
CanvasScreen是0.2.6版中最新提供的Screen实现,模拟J2ME中Canvas而成(也混合了GameCanvas的API),相关函数在J2SE及Android版中完全一致。
与标准Screen的其它区别在于,CanvasScreen可以通过getLGraphics函数直接获得对LGraphics的操作权,并非一定要通过paint函数绘图。另外,由于CanvasScreen的Paint函数并不直接关联父类的draw函数,所以LGame中提供的精灵或组件无法直接通过add函数加载显示,而是只能在paint中手动调用相应组件的绘图器进行绘制(关于这点,用惯J2ME的朋友应该没什么不习惯的。另外LGame提供有配套的j2me精灵类包可供使用,为1:1仿J2ME原有API实现)。
以下是一个CanvasScreen的使用示例:
//初始化时的精灵动画
//移动时的精灵动画
//背景图片
请注意,为了演示图像扩大机制,示例所用的精灵以及游戏背景图像都非常之小,而实际开发中并非一定要使用图像扩充,更不是只能使用此比例的图像。
下面我制作一个Sword.java,这是一个自定义的精灵类,用以显示上图所示的“骷髅剑士”。(在不重新实现ISprite的基础上,我们也可以直接使用现成的Sprite类来完成此例。但是,关于动作细节部分就只能在精类外部设定或者重载Sprite的update函数来实现(和实现ISprite没什么区别了|||))。
设定一个CanvasScreenExample.java,用以继承CanvasScreen。
此时,我们只需要根据需要实例化相关的Screen(也就是setScreen),就会得到如下效果:
实际运行效果如下(Android版效果与此相同,PC版中窗体实际大小被设定为480x320)
PS:在CanvasScreen中也允许完全照搬J2ME中Canvas(GameCanvas)与相关精灵(内置有API 1:1的精灵类相关实现)的构建方式,可以将任何J2ME游戏代码平移其中。简单的讲,您在只掌握J2ME技术的情况下也可以使用LGame,而无需单独学习任何LGame框架本身的构建方式。
较早前LGame示例(仅PC版)下载地址:http://loon-simple.googlecode.com/files/LGame-Simple-0.2.5.7z
最新版LGame(0.2.6)下载地址:http://loon-simple.googlecode.com/files/LGame-0.2.6.rar
- LGame(Android及J2SE游戏引擎)入门示例——如何构建一个游戏
- Android开源游戏引擎——LGame
- Android及JavaSE游戏引擎LGame-0.2.9发布(新增物理引擎支持)
- LGame游戏引擎的初始化
- Java版AVG游戏开发入门示例[3]——脚本引擎的制作及应用
- Java版AVG游戏开发入门示例[3]——脚本引擎的制作及应用
- LGame学习笔记1-----LGame游戏引擎大体架构
- Android游戏引擎--AndEngine入门
- LGame-0.3(Android与JavaSE游戏引擎)正式发布,新增SRPG制作模块
- Android与JavaSE游戏引擎LGame-0.3.1版正式发布
- 开源2D游戏引擎(Java&Android),LGame-0.3.2版正式发布
- 关于国产跨平台的开源游戏引擎LGame
- LGame游戏开发框架
- 音乐舞蹈游戏-LGame
- Java游戏开发框架LGame-0.2.6发布(含PC及Android版)
- Android游戏引擎Libgdx使用入门
- Android游戏引擎AndEngine入门讲解
- Android 游戏引擎——Angle
- Eclipse常用
- iptable 初始动作 开发 ssh
- Hibernate工作原理
- jqr
- invalid assignment left-hand side
- LGame(Android及J2SE游戏引擎)入门示例——如何构建一个游戏
- 优化MyEclipse7.5(其他版本可以类推)
- Oracle物化视图:创建最简单物化视图
- JSP中分页
- 十四个值得推荐的个人提升方法
- 如何解决Eclipse中ISO8859-1 字符集?
- 工作第一周
- MySQL的经典用法(四)----大幅度提高性能方案,分区表
- 解决The file XXX can not be found.Please check the location and try again!