您的位置:首页 > 其它

大战2013之五:关于飞行控制的问题

2013-02-22 21:37 218 查看
游戏中必不可少的就是飞行工具,包括宇宙飞船和大气内的飞行器。



说起这个,有必要先说一说我去年的一个想法,当然从一开始我就知道自己没钱,所以那个想法在我发财之前都只能是一个构思,呵呵。

设想是这样的,目前来说固定翼飞机的升力效果是最好的,但是悬停和原地转向比较困难,旋翼飞机升力效率差,但是可以任意悬停和转向。



无翼飞行器最大的优势就是雷达隐身效果。

我摄像以飞碟外形设计一个内置旋翼的飞行器,希望综合三方面的优势,初期目的有三个:

1.垂直起降,任一转弯,最好能实现倒飞

2.最高速度120-180公里每小时

3.造价大约1万到2万RMB,可以为民用、警用、消防救援和***侦查等提供有效帮助



构想就不跟大家探讨了,主要是内置四个螺旋翼,每个螺旋翼可以正负45度转向

螺旋桨桨叶可以正负15度转向则可以实现倒飞,因为是内置的,可以保证稳固,这是optional的。

通过调整螺旋翼的朝向可以改变悬停,转向,逆飞(减速)等。

使用万向轴控制各成120度的三个脚架实现起落架。



这个东西就不管它了,玩硬件是很烧钱的,我们现在谈谈飞行控制的一些原理,当然我不是搞机械的,专攻机械和流体力学的朋友就不要嘲笑了

不过可以提出你的意见或建议,大家也有个交流,增长见识。



1.固定翼流体内飞行器

这是升力效果最好的结构。固定翼的机翼升力来自两个方面:正面压力和负面压力。



固定翼的截面如上图所示,包括一个仰角。我们知道物理学上压力总是垂直于作用面的,所以打桌球的时候,两个球相撞,总是沿着垂直于触面方向散开。

当然我们这里没有考虑摩擦在里面。流体比如空气经过上图所示的机翼,在底面形成一个抬升力,这是正面压力,就像电风扇。

另一方面,流体的压力与流体的速度成反比,即速度越大,压力越小。

从A点到B点的路径中,由于顶面的路径长,流速增大,压力减小,与下面的力形成反差,得到一个总体向上的升力。

当升力大于或等于飞行器重力的时候,就可以起飞啦。



在实际的机翼中,介意的结构还有一个这样的东西:



这个好像是叫做襟翼还是副翼的东西,是辅助改变固定翼形态的。

了解军事的朋友都知道上图是美国海军的F18,超级大黄蜂战斗机。它在航母起飞或下降的时候,副翼向下弯曲

相信大家都知道是为了提升升力,同时还增加向前阻力,使飞机减速。



在单独考虑主翼的时候,如果左边副翼下沉,左边升力增加,飞机向右盘旋,如果右边副翼同时上扬

那么盘旋角度更大。而飞机的后面还有一对小很多的机翼,那个是升降舵。

当后面的升降舵升力增加时,机头下沉形成俯冲攻击或者……坠落……,反过来则是爬升。

相对比较垂直的尾翼是方向舵,一般是一片或两片,片数越多,页面越大转弯越厉害,跟尾翼一样,也是反过来的

就是升力越大的时候,飞机往相反方向转弯越厉害。当然,片数越多控制越繁琐,所以一般是一到两片。



现在回到我们的游戏上来,游戏主要还是太空战斗。

我们看飞机的起落架都有轮子,那是为了方便滑跑和在地面转向(虽然转的很慢)。

而飞船在母舰或空间站停泊则只需要借口,因此,游戏对飞行控制就简单化了。



主要是一个喷气引擎,可以增加正推力,结合对象的质量和场景的重力设置、惯性阻力设置计算物体的加速度

根据游戏时间就可以计算物体的位移、速度,并根据这两个还计算碰撞损伤,损伤超过一定值就直接爆了,当然为了防止一些“灵异事件”

比如玩家卡住了(那肯定是碰撞检测程序有BUG,像CF走在平地都卡住那种),游戏会设置一个自毁菜单,自尽吧……



当然,由于我的意图在Demo之后,会开放大气层内战斗场景,然后设计一辆架飞机。所以固定翼还是会有一些的。

要说明的一点是,飞船从太空攻击固定翼会轻而易举,就像空中力量攻击地面车辆一样。

但是飞船一旦到了大气层,机动力会非常差,会饱受固定翼的轮番攻击(毕竟飞船没有机翼),当然有些飞船引擎可以改变喷气方向

这些飞船的机动性能就得到一定程度改善,但是回到太空,其速度又打了折扣,因此飞船进入大气层主要还是靠一些护盾来保护自己。

护盾的设置目前有三种:

1.物理护盾:承受破片、弹丸等冲击,并且进入大气层保护飞船不被烧毁。

2.能量护盾:承受激光、等离子(plasma)武器的攻击,但是对物理冲击防御效果很微弱。

3.电磁护盾:屏蔽绝大多数的电磁脉冲攻击,保护飞船内部的电磁设备,讲灾难性会上降低至干扰,缺点是没有任何物理防御作用



每一艘飞船最多只能携带一种护盾,这就决定游戏中没有任何一艘飞船是无敌的,一物降一物啊。

当然了,没有护盾的飞船也未必是一只待宰的羔羊,就像不穿防弹衣的特种兵,这类飞船轻巧,机动力好,规避的效果也好。

尤其是被追踪的导弹跟踪,在导弹末端加速的时候,这类飞船能躲避大部分导弹。



因为场景中飘散着大量太空垃圾,一部分是相对静止的,另一部分则是反向飞行的,反向那一部分的威力足以瘫痪一艘小型飞船,

而这些垃圾太小了,比如:螺丝钉。因此物理护盾还是数量最多的护盾。



出于时间和精力的考虑,不在计算副翼、尾翼等的受力因素,有时间再写相关的状态脚本接口,最终他们仍然是被动的。

就是判断飞行器的状态做出相应的动作而已,而不是根据他们改变飞行器的状态了。

目前这些还是构思当中,还没有进入控制代码编写。



注:可以设定场景的重力参数为0,处于失重状态;设定惯性阻力为0则不受力的情况下按当前速度和方向匀速飞。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: