我在大学里学习数学(三角学,微积分II ......)但我不知道为什么你在游戏物理中使用tan,arctan等。我知道我可以找到工作代码并理解除了为什么我使用特定的trig函数之外的一切,但我不希望这样。
我想知道为什么我使用arctan或罪恶。我在哪里可以了解为什么我使用特定的数学函数来实际弹跳球?
感谢您的帮助。
编辑:我是否需要参加入门级物理课来理解游戏物理?答案 0 :(得分:9)
你正在使用trig,本质上是在同一个世界的不同表示之间进行转换。速度可以在2D世界中表示为一个角度和一个幅度。或者作为delta x和delta y。
您正在使用正弦和余弦从(在2D中再次)极坐标转换为直角坐标。你正在使用arctan走另一条路。 (希望您的语言具有arctan2功能,可以让您进入正确的象限。)
你并不严格需要触发 - 我在矢量中完成了整个3D商业视频游戏,包括所有相机移动。如果你学习了向量,矩阵和角度之间的关系,你就会知道如何。
编辑以解决问题的编辑:
你必须参加游戏物理的入门物理课吗?
它不会伤害。这取决于你想要物理的真实程度。游戏中有很多假物理,也有一些“真实”物理。我用几个方程做了整个台球比赛。让我谈谈几个共同领域。
碰撞。方程很简单。实施起来很艰难。你不需要物理课。
摩擦力&旋。无论你对教科书物理学有多了解,这在离散时间都很难。其中一些你最终会伪造,但它有助于了解真实的东西。
弦乐,滑轮,杠杆,叠盒等等。是的,请上课。
另一个考虑因素是你的游戏中有多少是基于物理的,有多少不是。如果一个巨型怪物将建筑物扔到另一栋建筑物上,会发生什么?建筑物可能有一个不是物理的下降动画。如果一个怪物的尾巴由于艺术家的角色动画而扫过建筑物会发生什么?很少有游戏100%实物化。
答案 1 :(得分:4)
OReilly书Physics for Game Developers听起来像是在这里使用
答案 2 :(得分:1)
你的问题是物理问题,而不是数学问题。查看基础物理教科书。特别是关于牛顿运动定律,碰撞,抛射物运动和重力的部分。有关事物如何移动的更详细研究,您想要的主题称为动态。 (甚至入门级动态书籍也可能有点激烈,但它们几乎都在任何机械工程课程中)
您最终在编码游戏物理中使用的公式是将物理定律应用于您设计用于构成游戏世界的虚拟模型的最终产品。
答案 3 :(得分:1)
我建议Game Physics Engine Development。到目前为止我只阅读了一些内容,但对于那些对微积分感到满意的人来说,这似乎相当不错。
我的一位同事购买了O'Reilly的书(Brian提到),但他抱怨说实际的“直接申请”和使用示例不够。我没有看过它来比较它,所以这是一个二手意见!
答案 4 :(得分:1)
如果您的目标是严格了解游戏物理,那么最好的办法就是坚持使用有关游戏物理的书籍,而不是参加真正的物理课程。
物理学是一个广阔的领域,任何好老师或介绍书的目标都将部分地向您介绍这个领域的美丽和深度。一般来说,这可能对你有用,但对于编程游戏则不行。对于游戏,你只需要基础知识,所以事情看起来很正常。数学和算法似乎与游戏编程更相关。
也就是说,对于正弦是什么(因为它一直用于圆周运动和游戏中涉及的其他几何计算),以及应用它的位置等,它似乎更有意义。 ,而不是知道摩擦系数或阿基米德原理或电子 - 质子质量比的含义。
答案 5 :(得分:0)
有时需要重新排列方程式以使用trig函数,这将导致浮点精度损失最小。
This页面总结了如何使计算更加健壮。
答案 6 :(得分:0)
多年来,我读了很多关于这个主题的书,但最让我困扰的一本书(因为它的清晰度)是"Game Physics Engine Development"。
它将教你大多数你需要知道的事情,比如质量弹簧系统,刚体力学,碰撞检测和简单的粒子系统。其他书籍,例如Game Physics更全面,但更难以理解,因为它更深入地研究数学。
答案 7 :(得分:0)
游戏物理学是一门非常庞大的学科(就像真实的物理学一样)。大多数问题,比如你所描述的......运动中的物体,简单的碰撞,弹跳和重力的影响,都会被一本介绍性的高中物理教科书所涵盖。除非你拿着专注于数学或物理的专业大学学位,否则通常不会教授更高级的数学/物理,用于渲染布料和水。