《Windows游戏编程》读书笔记(五)| 物理建模与粒子系统

2018-03-24  本文已影响0人  温素年

书名:《逐梦旅程:Windows游戏编程之从零开始》

作者博客地址:http://blog.csdn.net/poem_qianmo/article/details/12895487


第八章讲的是物理模型与粒子系统。先说物理模型的部分,文中描述了匀速直线运动、匀加速直线运动(重力)、减速运动(摩擦力)三种物理模型。都非常简单,我们在高中都学过,已经不能再熟悉了。正好最近“计算机仿真与建模”这门课的实验有一个类似的题目,会稍微复杂一点,所以我准备用这个题目练练手。

舰船追击问题

题目

我辑私舰雷达发现距c里处有一艘走私船正以匀速度a沿直线行驶,辑私舰立即以最大的速度 b追赶 , 若用雷达进行跟踪,保持船的瞬时速度方向始终指向走私船 , 试求辑私舰追逐路线和追上的时间 ,并且给出缉私舰和走私船的路线图。

是不是很像高中的物理题?这类速度方向每时每刻都在变化的问题是我们手工计算不出来的,而计算机可以将时间分解成一小段一小段的方式,每一小段就接近一个时刻,在通过大量的循环,计算出最终的答案。

而速度方向的问题,就将其分解为x和y两个方向,分别计算就好啦。下面是计算位移部分的关键代码。

计算位移的关键代码

其实写了这么多小程序,也了解了写的套路了,其实我们的位移或动画的实现都是在GamePaint函数中,在绘制位图后,计算好下一次绘制的坐标。下面是结果的截图:

两船正在相遇 相遇并显示时间

粒子系统

最开始听说粒子系统是在Unity3D里面,在制作烟尘、水等模型时都用到了粒子系统,所以我一直以为粒子系统是一个很神秘、很难的东西。

看了书以后才知道,原来粒子系统理解起来很容易。像雪花、水、烟尘这些东西,虽然它们可能是固态、液态、或者气态,但是它们都可以看作是一个一个的小粒子组成(例如一片雪花,一个水分子,或是一个烟尘颗粒)。每个小粒子都有自己的运动规律。

所以我们只需要设定每一个小粒子的运动规律,就可以模拟物体整体的运动状态。然后再通过渲染,物体就会呈现出我们看到的样子了。

上一篇下一篇

猜你喜欢

热点阅读