JBox2D手机游戏引擎介绍(附jbox2d官网网址)

Box2d是一个很出名的开源物理引擎2d物理引擎。Box2d有C++,flash和Java等版本。

Box2d论坛网址: http://box2d.org/forum/viewforum.php?f=9

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Android可以直接使用java版本的Jbox2d,但因为Jbox2d的图形渲染是使用processing库来实现的,所以,在android中使用Jbox2d的时候,图形渲染的工作就只能自己来写了。因为网上关于box2d的资料真的非常的少,特别是关于图形绘制方面。

JBox2d官网:http://code.google.com/p/jbox2d/ 

JBox2d是一个Java接口的C++的Box2D的刚体游戏的物理引擎。Jbox2D 物理引擎原版 Box2D 是采用C++编写的,著名手机游戏愤怒的小鸟便是采用jbox2D物理引擎。不过java版得jbox2D引擎性能不如C++环境下运行的性能好。在性能配置比较好的手机上面,jbox2D效果也是不错的。


JBox2D手机游戏引擎介绍(附jbox2d官网网址)_第1张图片 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

近日由于想写一款小游戏,需要用到物理引擎来模拟现实世界。

     上网搜索了下,看中了Box2d这款开源的物理引擎,因为需要在android 平台的java环境下运行,只能用其java版本的:jBox2d。

    1. 刚开始下载的是一个jar包,导入我的工程后,编译没有问题,但是一运行,模拟器上就提示:The Application stop unexpectedly……(最常见,最讨厌的错误)。

      无奈只好去命令行下查看日志:cmd --> adb shell   ---> logcat   看到了如下提示:

VFY: unable to find class referenced in signature (Lorg/jbox2d/dynamics/World;)
VFY: unable to find class referenced in signature (Lorg/jbox2d/dynamics/Body;)
VFY: unable to find class referenced in signature (Lorg/jbox2d/dynamics/Body;)
VFY: unable to find class referenced in signature (Lorg/jbox2d/dynamics/Body;)
Could not find class 'org.jbox2d.collision.PolygonDef', referenced from method xiaodi.test.MyBox2d.create

VFY: unable to resolve new-instance 18 (Lorg/jbox2d/collision/PolygonDef;) in Lxiaodi/test/MyBox2d;
VFY: rejecting opcode 0x22 at 0x0002
VFY: rejected Lxiaodi/test/MyBox2d;.createBox (FFFFZ)V
Verifier rejected class Lxiaodi/test/MyBox2d;
Class init failed in newInstance call (Lxiaodi/test/MyBox2d;)
701): Shutting down VM
threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
701): Uncaught handler: thread main exiting due to uncaught exception
701): java.lang.VerifyError: xiaodi.test.MyBox2d
701):        at java.lang.Class.newInstanceImpl(Native Method)
701):        at java.lang.Class.newInstance(Class.java:1472)

   上网搜索,发现中文网页没有相应的帖子,上Google查到的外文贴,也没什么提示。自己分析了下,应该怀疑是jbox2d的jar包打得有问题(但是编译没问题,奇怪!)。

2. 自己下得源码,重新打包。 运行,错误依旧。

3. 无奈之下,只好将源码,直接引入自己的工程。

     运行,一切如常。不过,此物理引擎在android模拟器上跑,发现性能较差,卡。

     PS:引入工程时,需要去掉:src/org/jbox2d/testdb整个包,因为此包乃demo,而且引用了另外的渲染库。此处,我们不需要。


 

你可能感兴趣的:(java,exception,android,Class,引擎,手机游戏)