• 物理学——总结


    今天物理学已成为了游戏的一个重要组成部分,但你也看到它不是很容易将一个现成的物理引擎在XNA中实现。但是,你仍然可以通过自己的方式实现物理引擎,并可运行于Xbox 360上,而Xbox 360上是不允许非托管代码的。

    物理学有许多议题,可以肯定全部都自己实现是不容易的,即使有一个良好的物理引擎你还必须做大量的调整和测试。然而,如果与你竞争的另一个游戏有大量的物理效果又不破坏游戏的乐趣,那么相对你的只有基本规则的游戏,那个游戏会更好。从这章的篇幅和在本书中的位置,你也应该意识物理不是一个简单的议题,特别是对初学者来说。虽然本章未能涵盖物理引擎的方方面面,但至少已了解了现有的物理引擎。如果你有兴趣阅读更多有关物理学的知识,可以参考网络、很多好书或如Game Programming Gems之类的系列书上的资料。

    赛车游戏、游戏逻辑和如何处理每件事将在下一章讨论。本书的其他游戏也使用了一点物理效果,但你可以忽略许多其他问题。例如,XNA Shooter只处理飞船,敌人,弹丸运动和通过检查距离处理简单的碰撞检测,但游戏运行良好。同样的方式,在赛车游戏中你只实现必要的物理效果,即不要多也不要少。

    本章你学习了以下议题,这些都用于赛车游戏:

    • 牛顿运动定律可能有点老,但它们仍然是有用的,让你可以快速在游戏实现简单的物理效果。著名的公式F=ma也被使用了几次,它是大多数物理计算的最重要的公式。 ? 始终保持尽可能简单,将问题分解成较小的问题,并编写单元测试以找出下一步该怎么办,这样你就不会编写将来不会用到的任何不必要的代码。

    • 始终保持尽可能简单,将问题分解成较小的问题,并编写单元测试以找出下一步该怎么办,这样你就不会编写将来不会用到的任何不必要的代码。
    • 你学习了今天可用的所有物理引擎。PhysX和Havok是主要的两个,但它们都是商业引擎,你无法将它们插入XNA中,而且它们使用非托管代码所以你也不能期望能工作在Xbox 360上。因为它们收费很高,你可能会想使用一个免费的,有很多示例和教程,但遭受同样缺乏对. NET的支持。ODE.NET是一个很好的解决办法,因为很多工作已经完成,虽然它只支持一些基本功能,但它仍然是一个非常强大的物理引擎,可以节省你几个月的工作。

    • 然后你一步步地解决了在赛车游戏中遇到的问题,如冲过环形赛道、处理弹性物理以及如何处理碰撞。Rocket Commander使用一个更为复杂的碰撞检测系统,但因为你只检查包围球是否碰撞,所以碰撞本身是相当简单的。

    • 当检测到碰撞后必须加以处理,要使碰撞检测更精确,你将花费大部分的时间去调整代码,以确保碰撞是真实的。在赛车游戏我没有太多的时间去做更多的调整,但基本的规则已经实现了,任何人如果有兴趣来改进游戏,可以添加更多的物理碰撞和计算。

    在本书中的最后一章第14章,你将学习赛车游戏的所有知识,以及如何创造改编版本,这将是相当令人激动的。

  • 相关阅读:
    用新版本的job打成jar包在终端运行mapreduce程序遇到的问题 找不到Map class?
    在map端使用关联数组实现wordcount
    基数排序c++实现
    (sql补充)关于锁
    (sql server补充)关于事务
    (sql补充)关于游标
    java api文档的阅读技巧
    android开发学习路线图
    (sql补充)关于索引
    Android开发之学习路线
  • 原文地址:https://www.cnblogs.com/AlexCheng/p/2120188.html
Copyright © 2020-2023  润新知