程序改变世界程序员军迷

模拟现实中的洲际导弹

2017-03-16  本文已影响207人  齊葩

我们先观察一下现实中的洲际导弹

1:一般都是由发射井,发射车,潜艇,航母,以及其他一些发射平台发射的。

2:发射角度一般都是垂直的。

3:发射时的速度是逐步加速的。

4:到达一定高度或者速度的时候开始转向。

5:有自己的定位系统

6:有自己的反拦截系统。

7:有一定的灵活机动性

8:等等(我不是做导弹的,这些都是可以看见的,还有一堆看不见的东西请自己发掘)

有了上面的资料我们就可以去模拟洲际导弹了

1:需要创建一个洲际导弹类。

2:洲际导弹的属性一般有 

     a:模型或图片(可能还有特效)

     b:向量(飞行方向)

     c:当前速度

     d:加速度

     e:最大速度

     f:转向速度(旋转速度)

     g:最小旋转速度

     h:最低旋转高度

     i:攻击目标

     j:搜寻范围

     k:飞行时间

     l:飞行时间上限

     m:碰撞体

     n:弹头(不同的弹头爆炸后有不同的效果)

3:洲际导弹需要有个每一帧都执行的方法来不停的更新自己的属性。比如update

4:洲际导弹还需要有一个start方法,这个方法里给属性赋予初始值(一般把当前速度赋值为0)。并且启动update方法

5:update方法里更新数据的顺序

    a:更新飞行时间(飞行时间+=这一帧刷新的时间)

    b:更新飞行速度((当前速度+(当前速度+加速度)*这一帧刷新的时间)与最大飞行速度的最小值)。为什么是(当前速度+加速度)*这一帧刷新的时间而不是加速度*这一帧刷新的时间,因为速度是弧线递增的,不是直线递增的

    c:更新飞行方向(如果最低旋转高度和最小旋转速度都达到了就可以更新飞行方向了,(需要旋转的角度*旋转速度*这一帧的时间)这个值与需要旋转的角度取最小值+当前角度)。如何旋转一个向量点击这里

    d:需要在update 里更新炮弹的位置 (方向*速度*这一帧执行的时间+当前的炮弹的位置)

    e:需要在update里检查敌方的拦截武器(就是发现除了目标以为的东西像自己飞来时,可以采取避让和制造分身的方式等等来躲避拦截)

    f:如果目标消失了就在update里搜寻搜寻范围内的目标。

    g:没有目标时直线飞行

    h:在update里检查炮弹是否与可以发生碰撞的东西发生了碰撞,如果碰撞了就爆炸(爆炸交给弹头处理

    i:检查飞行时间是否达到上限,如果到了就爆炸

    j:爆炸后销毁炮弹

弹头也需要写一个类(因为有不同的弹头)

1:弹头属性

    a:爆炸范围

    b:攻击力

    c:可能还有攻击类型,攻击属性,buff,等等。看你是什么弹头了。

2:弹头有一个方法那就是放爆炸

3:爆炸时检测是否有敌人在爆炸范围内。有的话一起受到伤害和buff的影响

讲完收工(是不是简单到爆)

点击这里可以看到作者的其他文章

欢迎转载,转载请标明出处

上一篇 下一篇

猜你喜欢

热点阅读