BOX2D越来越火了,基本上已经稳固了自己在游戏开发者心目中的地位。其实很早之前就在关注BOX2D了,原本在flash游戏中应用非常普遍,近两年移动平台的兴起才再IOS和Android中崭露头角。我个人觉得,愤怒的小鸟成功只是一个偶然,不信就去逛逛flash游戏网站,你会发现很多精致、有创意又耐玩的游戏。(不过Rovio对游戏事业的专注和热情是值得大家学习的)
目前我知道的Android平台使用BOX2D有三种方式,官方的JBOX2D,libgdx封装的JNI版BOX2D,还有微云SDK里的JNI版BOX2D。
1)JBOX2D。纯正、稳定、跨平台、官方支持,唯一的缺点是速度慢,这跟JAVA的虚拟机有关,大量的临时对象和数据运算不能像C/C++那样被及时free掉是主要原因。比起JNI版的确实速度略逊一筹,但也没有网上传言的那么夸张,现在的Android手机CPU动不动就1GHZ,内存动不动就几百M,跑JBOX2D还是绰绰有余的(勿信PC上的模拟器)。如果你的游戏跑起来卡,主要问题就在程序上,是不是时间步设置得太小了?是不是迭代设置得太多了?手机上的休闲游戏,每秒12~20帧足够了。还有就是图象是不是即时旋转的,不要相信Matrix效率有多高,不要动态地旋转图片,推荐预先生成0~90°的图片,精度不用那么高,每5°或10°生成一张,然后翻转+镜像贴出0~360°的图片,这样的速度比即时翻转快出n倍。
2)libgdx。Angle、LGame等很多开源引擎都选择了它封装的box2d,可见对它的可用性是充分肯定的。libgdx的作者估计内流满面,大家貌似只看上他的box2d部分了,其实libgdx整体都很优秀。libgdx box2d的JNI代码写得非常清晰,运行速度非常快,使用方法也很接近原生的JBOX2D,我就是看c++版的文档来开发JAVA的,差别不大,毫无鸭梨。不过据不少人反映,libgdx封装的box2d存在bug,我也遇到莫名其妙报错退出的问题,至今没找到原因,调试起来比较困难。
3)微云SDK(http://www.wiyun.com/web/wiengine,我依然不是枪手)。这个2D游戏框架目前很高调,对它了解不多,略微看了一下,BOX2D、LUA、粒子系统、XML都做了封装,甚至场景元素,地图图素都做了细致地封装,人性化程度可见一斑!不过它似乎忽略了一点,独立游戏人之所以做独立游戏人,因为他们什么都喜欢自己动手,封装得越细致就说明约束越大,自由发挥余地就越小。或许你把饭盛好,用勺子送到独立游戏人的嘴边,换回的却是一个“呸!”,呵呵开个玩笑,我也是独立游戏人。有点偏题了,回头说BOX2D,微云同样是JNI封装的C代码,粗略看了下文档以及JNI代码,不像是直接用的libgdx的,它再一次封装到了嘴边,框架结构让我匪夷所思,习惯了BOX2D的朋友可能要花点时间熟悉一下。
介绍就到这里,附件里附上Jbox2D、libgdx的box2d以及一篇c++的BOX2D教程,下篇文章或将介绍Android中使用box2d的例子。
分享到:
相关推荐
##什么是 FlxBox2D? FlxBox2D 是 Box2D 通过 libgdx 的包装器。 Box2D 是一个完整的 JNI ... ##Getting started 在开始使用 Box2D 编写代码之前,建议您先阅读手册。 Box2D 不是直接开始的简单的东西。 该手册可以在
此Jquery特效是一款HTML5小游戏,利用了2D特效引擎插件box2d实现小球碰撞叠加,鼠标在页面空白位置点击一下就会弹出几个圆球出来掉到地上弹跳,停止之后会一直在原来的小球上面叠加上去,一直到整个页面铺满为止,...
这是使用Openframeworks进行box2d的简单包装。 以下示例仍在进行中,但在大多数情况下应该是稳定的。 如果您有建议或发现错误,请提出一个问题。 包装器使用的是Box2D v2.3版本 谢谢托德 安装 首先,选择与您的...
处理-LeapMotion-Box2d 看看这个游戏的精彩视频: : 用跳跃运动和 box2d 在处理中制作的游戏 请在笔记本电脑上连接跳跃动作打开它。 跳跃运动介绍: : 每个文件夹都包含一个游戏级别的脚本。 请在安装了 box2d ...
Dart之后的物理学这个游戏是我在 [Dart] 和 [box2d.dart] Geeva Hackathon 2013 项目。 这是一个基于物理的简单益智游戏。 在黑客马拉松期间,我只完成了 3 个关卡,你的目标是帮助 3 或 5 个球到达白色三角形。 很...
射手我的第一个 HTML5 + javascript(easelJS 和 Box2D)游戏开发经验随意修改,但只保留学分欢迎任何建议
利用 Box2D 和 Socket.io 为任何浏览器启用触摸界面。 你可以在这里试试: : 设置 此应用程序需要和 要安装,请运行以下命令: npm install node app 然后,您可以导航到以查看登录页面。 由于此应用程序旨在...
boxLCD是具有低分辨率和二值化渲染的box2D物理。 它提供了示例环境以及用于定义和渲染自定义环境的API。 该项目的目的是通过提供一个简单的测试平台来学习物理环境的预测动力学模型,从而加速和世界模型研究的进展...
它包括OpenGL批处理渲染系统,Box2D物理,OpenAL音频,骨骼和Spritesheet动画,自动资产管理,模块化项目结构,TML对象持久性以及类似C的脚本语言。 分行 以下是在Torque 2D存储库中找到的分支的概述: master:此...
第3步-使用选择性搜索或MS-CNN网络生成2D边界框建议。 步骤4-对于每个2D边界框建议,通过使用2D边界框建议和3D点云中的信息来获取每个建议的(x,y,z)坐标,从而获得3D边界框建议。 使用标准值,例如。 每个提案的...
siki.lua 一个hitbox编辑器使用爱情2d Kenny Shields(又名 Nikolai Resokav)的 LoveFrames dkjson.lua 流明+潜伏者在麻省理工学院获得许可该工具本身已宣布完成,但它可能有未发现的错误,这些错误将在未来使用中...
使用box2d这样的物理引擎可以实现逼真的碰撞,但是其位置不可控,不能用物理引擎。故自己重写碰撞过程,碰撞过程分析较复杂,在blog中有分析,地址 游戏上线后,趁闲暇时间,整理碰撞的思路,用seajs重新写了一遍。...
天天酷跑的素材包,虽然不完整,但数量还是有那么多的,下载的朋友建议你们先下载一个ShoeBox,因为好多图片是经过合成,只有通过一些软件才能将图片进行分解。
项目_CSC780 该存储库包含有关 android 应用程序/游戏 ... 建议:使用 AndEngine/Libgdx/Box2D。 谷歌这些并尝试呈现活动) 现在工作玩家表现得很好,但可以进行改进。 查看 Github 上的开发指南,该指南将引
火箭着陆器健身房这是一个的定制环境。 它模拟SpaceX猎鹰火箭的着陆。... gym, pybox2d该项目在很大程度上取决于OpenAI Gym和Box2d,因此请在手之前安装它们,否则可能会遇到错误。 建议完全安装。
特别是,我们建议放宽重投影损失,盒先验损失和盒对点云拟合网络,使我们能够在训练过程中有效地将有用的3D信息从强类传递到弱类,从而使网络能够在推理过程中检测弱类中的3D对象。 实验结果表明,与SUN-RGBD和KITTI...
今天这款HML5重力感应动画特效功能更强,页面上会掉落大小不等的碰撞球,我们可以拖动小球,也可以点击页面空白来生产采用的box2D物理引擎是被很多游戏所采用的游戏引擎。这是一款非常优秀的特效源码。建议用户使用...
bootcfg /rebuild 重复全部 Windows 安装过程并允许用户选择要添加的内容。 注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。 bootcfg /scan 扫描用于 Windows 安装的...