Android及JavaSE游戏引擎LGame-0.2.9发布(新增物理引擎支持)

原创 2010年12月11日 16:25:00

 

版本信息:

 

发布时间 版本号
2010-12-11 0.2.9
2010-09-15 0.2.8
2010-08-19 0.2.7
2010-07-31 0.2.6
2009-12-29 0.2.5
2009-10-10 0.2.0
2009-09-13 0.1.5
2009-08-11 0.1.0

 

LGame-0.2.9下载地址(新增物理引擎,修正旧版BUG,内含jar、文档、源码及示例):

 

http://loon-simple.googlecode.com/files/LGame-0.2.9.7z

 

2010-12-11 LGame-0.2.9-Update:

1、为LGame新增Box2D物理引擎支持,并提供有针对物理游戏的PhysicsScreen,此类为World封装,默认世界大小即屏幕大小(可调),并能够利用bindTo函数将任意图片(自成物理边界)、指定形状或者精灵绑定到PhysicsObject当中(Body封装,可选参数与Body及BodyDef高度一致,同时为精灵实现),也提供有一系列额外的Box2D封装(此部分功能位于Android版的LGame-Android-Physics-0.2.9.jar及libjbox.so,JavaSE版LGame-JavaSE-Physics-0.2.9.jar及libjbox.dll中,皆非LGame运行必须,核心jar对此无依赖,选用)。即使不使用物理引擎,自该版开始LGame也可以直接将任意图片转化为Polygon。

2、为LGame新增重力感应支持,在游戏初始化前调用setupGravity即可让重力感应监听成立,在任意Screen中重载onDirection函数即可获得手机当前方向及具体的x,y,z数值。

3、为LGame新增了Triangle以及Polygon2D这两个形状类,具体作用在物理引擎部分可见。

4、修正原有LGameAndroid2DView、Screen、ThreadScreen、LGraphicsAndroid2D、Sprite、SpriteImage、Sprites等类中部分运算方法,并进行了相应扩展。

5、修正所有得到用户反馈的BUG,包括长按键盘会造成FPS减速之类的细节问题。

6、暂时取消了JavaSE版的lua支持及Android版的http封装,近期我会将相关部分作为独立项目另行发布(包括较早前在Android版本取消的ioc封装、db封装等)。

 

_______________________________________

 

下面所提供的,是以LGame开发物理游戏的简单示例:

 

 

 

在上述演示代码里,小弟主要使用到PhysicsScreen以及PhysicsObject这两个新增类(其它部分归Box2D范畴~)。

 

在LGame-0.2.9中,PhysicsScreen继承自Screen,其本身可以认为是一个自动刷新画面结果的绘图器,内部封装有针对Box2D的World,世界大小默认即屏幕大小(可调),并提供了绑定任何事物到PhysicsObject的能力。其中涉及Box2D的部分(虽然libgdx的JNI封装并不完整,但大体使用方式是一致的),请自行参阅Box2D文档,暂不赘述。另外,在调试物理游戏时,个人建议使用真机或者所运行环境硬件性能足够高的虚拟机。

 

而PhysicsObject继承自ISprite,它本身也是一个精灵,但地位却比较特殊,它的主要作用在于同PhysicsScreen联动,其提供的大多数构造方法不能在PhysicsScreen以外的Screen中使用。PhysicsObject另一个比较特殊的地方在于,它能够直接将图像转化为形状(我诅咒Box2D万恶的凸多边形限制,这个转化过程是单独写的,没有使用jbox2d中的BodyUtil,因为测高点的话有的图形会转换失败)并参与碰撞,而无需手动设定。此外,BodyType与Body提供的参数皆可在PhysicsObject当中进行设置,但只在调用make函数后才会生效。

 

运行效果如下图所示:

 

00

我们可以看到,即使使用了JNI封装,Box2D跑在虚拟机中的速度还是较慢,但是这仅仅是在虚拟环境中,如果发布到真机里,我相信大家就会看到差异了。顺便发一张JavaSE版同代码的运行结果。

 

00

 

PS:当然,由于LGame目前以标准Android2D方式构建,其图形渲染性能确实会受到一定的制约,即便构建方式完全一致,LGame-JavaSE版的物理引擎运算效率也要2、3倍于Android真机之上,而在Android虚拟机运行时自然更低(基本上动态的物理精灵越多(上图的线桥也是动态精灵,只是在模拟器上没敢开线桥的图片旋转),运行速度就会越低,反之在全是静态精灵的前提下,显示速度会无限接近60FPS(默认最大值))。

 

LGame-0.2.9下载地址(新增物理引擎,修正旧版BUG,内含jar、文档、源码及示例):

 

http://loon-simple.googlecode.com/files/LGame-0.2.9.7z

 


——————————————————————————————

 

以下为较早前发布过的一些程序示例画面(请下载较早前LGame发布版本获得,此外JavaSE版与Android版代码可以基本通用):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用模拟按键,可以轻松制作格斗类或需要复杂操作的游戏。

 

00

 

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

开源2D游戏引擎(Java&Android),LGame-0.3.2版正式发布

PS:为了多平台版本的优化与整合,本年内(2011)不会正式发布0.3.3版LGame。不过,LGame项目SVN根目录下有LGame-Anroid-0.3.3版的测试版jar及源码提供。除尚未附带R...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

LGame(Android及J2SE游戏引擎)入门示例——如何构建一个游戏

LGame(Android及J2SE游戏引擎)入门示例——如何构建一个游戏

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

LGame-0.3(Android与JavaSE游戏引擎)正式发布,新增SRPG制作模块

LGame-0.3(Android与JavaSE游戏引擎)正式发布,新增SRPG制作模块,并伴随有大量改进。...

LGame游戏引擎canvas版本源码

  • 2015年03月27日 11:36
  • 487KB
  • 下载

LGAME游戏引擎架构源码

  • 2010年08月20日 13:55
  • 5.36MB
  • 下载

关于国产跨平台的开源游戏引擎LGame

LGame可能听说的人不算很多,但也不算少了。早在我还在读大二大三,大概就是08-09年的那个时候,作者就已经开始规划和开发了。 LGame的作者博客为: http://blog.csdn.net...
  • ml3947
  • ml3947
  • 2013年07月02日 21:40
  • 5912
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android及JavaSE游戏引擎LGame-0.2.9发布(新增物理引擎支持)
举报原因:
原因补充:

(最多只允许输入30个字)