我正在寻找一些很好的参考资料来学习如何在游戏中建模2d物理.我不是在找图书馆为我做这件事 - 我想思考和学习,而不是盲目地利用别人的工作.
我已经做了很多谷歌搜索,虽然我已经在GameDev上找到了一些教程等,但是我发现他们的教程难以理解,因为它们要么写得不好,要么假设我不懂数学水平.但还是拥有.
具体而言 - 我正在寻找如何模拟自上而下的2D游戏,有点像坦克战斗游戏 - 我想准确地模拟(除其他外)加速度和速度,'组件的热量积累'之间的碰撞模型和等级界限,以及导弹型武器.
网站,推荐书籍,博客,代码示例 - 如果有助于理解,欢迎所有人.我正在考虑使用C#和F#来构建我的游戏,所以这两种语言中的代码示例都会很棒 - 但是不要让语言阻止你发布一个好的链接.=)
编辑:我不是说我不理解数学 - 更多的情况是我不知道我需要知道什么才能理解所涉及的系统,并且不知道如何找到资源会以一种可以理解的方式教我.
以下是我几年前收集的一些资源.值得注意的是Verlet集成.我还包括我当时发现的一些开源和商业物理引擎的链接.这里有关于这个主题的stackoverflow文章:2D游戏物理?
物理方法
Verlet集成(维基百科文章)
高级角色物理(伟大的文章!包括运动,碰撞,关节和其他约束.)
图书
"游戏物理引擎开发",Ian Millington - 我拥有这本书并强烈推荐它.本书从头开始用C++构建物理引擎.作者从基本粒子物理学开始,然后添加"运动定律",约束,刚体物理等等.他包括完整记录的源代码.
物理引擎
托卡马克(开源物理API)
APE(Actionscript物理引擎)
FLADE(Flash动态引擎)
Fisix引擎(另一个Flash Actionscript引擎)
简单物理引擎(商业)
(来源:oreilly.com)
奥莱利的游戏开发者物理学
从经验来看,实现2D物理引擎非常困难.我将详细介绍在创建引擎时所采取的几个步骤.
碰撞检测.即使您没有处理3D世界或网络模拟,碰撞检测也可能是一个难题.对于2D物理,您肯定要使用分离轴定理.一旦你实施了SAT,你就完成了动力部分的一半.
运动学/动力学.Chris Hecker撰写了一篇优秀的在线资源,逐步引导我完成碰撞响应.
其他一切.一旦你完成了碰撞检测/响应,就可以在引擎中实现你想要的其他一切.这可能包括摩擦力,接触力,关节以及您能想到的任何其他因素.
玩得开心!创建自己的物理模拟是一种非常有益的体验.