我一直在寻找能够很好地与Android配合使用的物理引擎,但我只是感到很失望.
在性能方面,我听说jbox2d是最好的选择,但是(根据我的理解)自从Android SDK V1.0以来,Dalvik VM的验证器变得非常严格并且拒绝了一些关键类并且拒绝运行.使用dx工具后,此问题仍然存在(尽管我可能不正确地使用该工具).
我知道AndroidBox2D移植项目的存在是为了优化Android垃圾收集器的jbox2d,但项目页面没有任何下载,gpl许可证没有原始版本的zlib许可证那么吸引人.
有没有人有任何提示让jbox2d在Eclipse中工作,或者有任何建议我应该从哪里开始寻找?
我正在尝试为简单的软件应用程序选择一个物理引擎.它将模拟相当少量的对象,因此性能不是一个大问题.我主要关心所涉议案的准确性.我还希望引擎在windows/linux/mac之间是跨平台的,并且可以与c ++代码一起使用.我在看Bullet,Newton Game Dynamics和ODE因为它们是开源的.但是,如果Havok/PhysX更精确,我也会考虑这些.
我似乎发现所有关于引擎的意见,这些选项之间是否有任何彻底的比较?或者有没有人有尝试各种引擎的经验.由于我想要做的事情相对简单,它们之间可能没有太大差异,但我想听听人们对这些选项的看法?谢谢!
这个问题可能是一个愚蠢的问题,但我真的很好奇.
在玩过像HL2,GMod或者愤怒的小鸟这样的游戏,并使用像Box2D这样的物理库之后,我开始怀疑"物理引擎如何模拟物理?"
像词法和语法分析器用于编译时理解代码,并使用光线跟踪渲染3D场景,我认为有一些概念(比碰撞检测等),它们在物理引擎来模拟物理,如计算力矩和五边形进行桶滚动的速度.
物理引擎如何实际模拟物理?使用了什么概念?网上是否有关于制作像这样的物理引擎的"教程" ,它展示了光线追踪?
在问这个之前我做了很多网上搜索.我不能这样做.这对我来说有点难以理解.那么我如何在与世界位置的身体相对应的右侧屏幕位置绘制图像?感谢名单.
如果有人在同一个障碍面前找到了他,我会发布一个HOW TO,而不是正常速度的好解释.你可以在这里找到它:http://romeo.akademx.ro/2012/04/06/slick-and-box2d/
这是渲染功能:
public void render(GameContainer container, StateBasedGame game, Graphics g)
throws SlickException {
g.setBackground(Color.white);
g.pushTransform();
g.translate(worldToScreen(body.getPosition()).x, worldToScreen(body.getPosition()).y);
g.rotate(15, 15, (float) Math.toDegrees(body.getAngle()));
part.draw();
g.popTransform();
g.drawString("Count: " + cont, 5, 40);
//world.drawDebugData();
}
Run Code Online (Sandbox Code Playgroud)
这些是我用来转换世界屏幕协调的功能:
public Vec2 screenToWorld(Vec2 screenV) {
return new Vec2((screenV.x - offset.x) / scaleFactor, yFlip
* (screenV.y - offset.y) / scaleFactor);
}
public Vec2 worldToScreen(Vec2 worldV) {
return new Vec2(worldV.x * scaleFactor + offset.x, yFlip * worldV.y
* scaleFactor + offset.y);
}
Run Code Online (Sandbox Code Playgroud)
我也碰巧使用此链接中的SlickDebugDraw:http://slick.javaunlimited.net/viewtopic.php?f …
在研究3D游戏编程之后,很快就会发现为什么物理引擎非常有用.在Android上支持哪些物理引擎并且可行?关于他们的任何其他建议都会很好.
谢谢
我想用javascript做一个演示,我想做<canvas>一个有点动人的生物,从顶部看,在水环境中游泳.
概念艺术" :

有什么东西我可以用来启动这个项目,还是我需要从头开始创建一切?
我在iphone上使用box2d创建游戏.我有一个受重力影响的身体向下移动而不是向右或向左移动.它将被另一个身体击中,然后向右或向左移动.然后我有一个重置按钮,将身体移回其起点.唯一的问题是它仍然向右或向左移动.我怎样才能抵消球已经行进的力量?当我重置游戏时,如何摆脱这种左右移动?
我正在使用box2d进行物理模拟.当按下按键时,我通过在身体上施加冲动使用箭头键移动一个圆圈.不幸的是,圆圈移动速度极慢,并且似乎没有像真正的身体一样加速.我的世界尺寸是400x800像素.圆体的半径是20f.
根据这一点,可以通过在创建圆形半径时缩小圆形半径并在绘制期间获得主体位置后放大来解决该问题.它似乎没有任何区别.我在这里缺少一些步骤或设置吗?
我正在使用cannon.js创建简单的汽车游戏,但我正在为此苦苦挣扎。
我想做的事:
当我开车撞到另一个物体(例如球体)时,我想了解它。
例如,增加分数或其他,但不对两个对象施加力。
我没有成功的尝试:
使用
chassisBody.addEventListener("collide",function(e){ "mycode"};
Run Code Online (Sandbox Code Playgroud)
与组合组
var GROUP1 = 1; etc..
Run Code Online (Sandbox Code Playgroud)
但我想群体的要点是标记我想要和不想碰撞的对象,我希望它们“碰撞”但没有实际对它们施加力,只记录它们的身体相交并触发我的评分代码等。
(我添加了 Threejs 标签,以防万一有人偶然发现这个,无论如何我都在使用它)
2022 年编辑:
这是它的样子,警告,它是旧代码:)
我刚刚完成了CS282的独立学习课程 - 计算机物理仿真.这是我第一次参加我所在的大学.教科书是"游戏物理引擎开发:如何为你的游戏构建一个强大的商业级物理引擎",作者是Ian Millington.这本书充满了语法错误,虽然是一个有用的参考,但很难编码.本书提供的源代码比书中说明的要完整得多,并且解密代码存在一定难度,特别是出于图形目的,因为甚至没有关于如何使用引擎自行执行某些操作的入门知识,实际上在某些地方被破坏或未实现,或者如何使用GLUT,这是本书使用的图形实用程序,并且不是任何时候开发的!事实上,本书中的大多数参考文献都不是来自过去的十年,我认为这对15年前的教学代码来说并不算太糟糕.虽然本文是初学者环境中物理模拟大图的一个很好的资源,但它并没有为CS学生介绍一个友好的沙盒.
这基本上是一个实验,以找出哪些有效,哪些无效.我的教授还包括一本教科书,用于将ActionScript与物理引擎结合使用,但该文本需要事先了解物理引擎的工作原理,因此我们将其放弃以实现实用性.
我的问题是:
我正在撰写一篇反思论文,我希望能够推荐一些替代这些文本,为CS学生提供一个简单的方法来跳入和编写代码,实际上能够看到他们的成果.工作,可能与python.任何人都可以推荐一个对此有用的好资源和/或文本吗?对于那些参加过这门课程或类似课程的学生,您的经历是什么?
physics-engine ×10
android ×2
box2d ×2
c++ ×2
javascript ×2
physics ×2
animation ×1
cannon.js ×1
canvas ×1
comparison ×1
game-physics ×1
iphone ×1
java ×1
jbox2d ×1
libgdx ×1
python ×1
simulation ×1
slick2d ×1
three.js ×1
xcode ×1