我需要编写一个非常简单的Java物理模拟器,立方体和球体相互碰撞,而不是更多。我从来没有做过这样的事情,我应该从哪里开始?有关如何完成的任何文档?任何我可以重复使用的图书馆?从哪里开始写/使用3D物理模拟引擎?
回答
Physics for Game Programmers By Grant Palmer(不是Java)
Phys2D(Java代码)
假设你想开始如何做,最好的办法是用钢笔和纸。开始定义你的应用程序的焦点(如实体球体,立方体等,像重力,碰撞等规则,决定对象的层次结构等。)
如果你知道如何做到这一点, Swing是在Java中制作UI的好选择。
也到这里看看:http://www.myphysicslab.com/
如何首先定义物理对象的类?它有位置,速度,质量和可能与其他的功能,如形状,弹性等
然后创建一个宇宙(类),其中放置这些物理对象的子类。听起来很有趣:)
如果你需要模拟的是球体/圆和立方体,那么你所需要的只是一些矢量数学。
例如模拟一个简单的游戏池游戏,每个球(球体)都有一个位置,3d线速度和3d线性加速度向量。你的模拟将涉及许多小框架,它不断更新每一个球。如果两个或两个以上的球碰撞,只需对矢量进行求和并计算所有球的新速度。例如,如果一个球碰到墙壁,所需要的只是翻转球的标志以使其反弹回来......
如果您想从头开始编写自己的物理引擎,我们必须知道背后数学的来龙去脉才能做到这一点。如果你有一个相当好的数学背景,你会有一个头痛的起因,否则会有一个陡峭的学习曲线。
你可以开始进行这项工作的社区论坛,收集有关如何做事的信息: gamedev.net
Ofcourse你可以使用像Ogre一个开源的引擎,如果你不希望自己的代码。
查看bulletphysics。 bulletphysics.com是论坛或check out the project on Sourceforge。
NeHe的课程39是一个很好的起点,它在C++中,但理论很容易理解。
一个不错的java物理库是jmephysics(http://www.jmonkeyengine.com/jmeforum/index.php?topic=6459);它很容易使用,并且位于ODE()和jmonkeyengine(http://www.jmonkeyengine.com)之上,它为您提供了一个场景图(http://en.wikipedia.org/wiki/Scene_graph),这是除了非常简单的3d应用程序之外您需要的任何东西。
虽然我还没有使用它一段时间,并且看到他们自2007年后期以来还没有发布,所以不知道现在社区有多活跃。
- 1. GTK主题引擎:从哪里开始?
- 2. 沙质3d物理引擎
- 3. 从哪里开始的3D .NET的
- 4. .Net 3D物理引擎的建议
- 5. 2D物理引擎模拟重力使用图像
- 6. 构建webapp(Rails + MySQL +?)的推荐引擎 - 从哪里开始
- 7. 构建一个全文搜索引擎:从哪里开始
- 8. 从哪里可以开始学习规则引擎?
- 9. jasperreports引擎从哪里引用字体?
- 10. 从哪里开始?
- 11. - 从哪里开始?
- 12. 写一个REPL:从哪里开始?
- 13. Apache .htaccess重写URL,从哪里开始?
- 14. 用于模拟爆炸的图形和物理引擎
- 15. 处理颠覆(TortoiseSVN),从哪里开始?
- 16. 从哪里开始使用API的
- 17. 从哪里开始使用API
- 18. 从哪里开始使用FastCGI和C++
- 19. 我从哪里开始使用RESTful API?
- 20. 我从哪里开始使用C#?
- 21. 使用Moq和TDD,从哪里开始?
- 22. SSAS - 你从哪里开始使用它?
- 23. 搜索引擎在哪里开始爬行?
- 24. 开始从哪里开始移植?
- 25. 如何开始,从哪里开始MScharts?
- 26. WPF物理引擎
- 27. Android物理引擎
- 28. WPF物理引擎?
- 29. 通用物理引擎
- 30. 从哪里开始Magento?
这不是物理学:没有重力,没有弹性等乐趣做起动器,但有限。 – PhiLho 2009-03-02 13:36:29