欢迎光临散文网 会员登陆 & 注册

战舰世界数学教室1坐标系与伤害计算

2019-03-14 17:44 作者:伊斯-染  | 我要投稿

此系列包含了作者大量无病呻吟和yy装逼,纯娱乐玩家勿喷。

阅读此系列需要有基本的游戏机制知识,详见官方运作机制系列视频官方小教室系列

坐标系

         船只的位置,炮弹的落点,游戏里所有的实体都有一个物理坐标来表示它位置。

         对于一艘船,有四个参数:x,y,方向角θ,桶滚角φ。x,y表示地图上的位置,方向角是船头指向,桶滚角是船体倾斜程度,在转弯时会变化。这些记作p。

除了位置信息,我们还有速度v,平面上的二维向量;角速度ω,每秒改变船头指向的速度;加速度a,每秒速度大小的改变量。角速度与我们的当前舵的位置,速度大小有关;加速度与挡位、速度大小、船体属性、舵态都有关;实际结果要看服务器是如何运算的。

位置变化p(t+dt)=p(t)+v(t)dt

速度变化v(t+dt)=v(t)+a(t)dt+v(t)*ω

a=f1(|v|,档态,舵态),ω=f2(|v|,档态,舵态)

有了这些信息,我们就能判断一条船在灭点后能跑多远,有可能有怎样的移动范围,常见的灭点炮,一般就是判断目标会保持现有的航行状态打出的出其不意的一击。

每条船都有自己的隐蔽圈、射程圈等等,即以xy坐标为圆心做半径为射程或隐蔽数值的圆。这里就涉及点亮机制,当对方有船只在你的隐蔽圈内,且两船瞭望塔无遮挡时,你的战舰就会被发现。判断对方的距离速度是否会导致自己被点亮很多时候是非常重要的,控制好速度和距离,经常是驱逐舰内斗时取得先机的关键。

伤害计算

当我们的载具被击中时,会受到伤害,先从分析一颗炮弹如何造成伤害开始:

以受攻击船只模型中心为O,船头方向为y轴:

    单颗炮弹造成伤害与自身装甲模型,炮弹类型,入射位置,入射速度,入射角度,当前模块血量状态有关。

    具体来讲。装甲模型决定是一个三维模型,是一组平面的集合(毛子的建模应该没有装甲的物理厚度,只是一个有“厚度”属性的平面);炮弹类型包括口径,标伤,初速度,点火率等因素;入射位置是船体装甲平面上的一个三维坐标;入射速度、角度可以由这颗炮弹的发射位置和炮弹类型计算出来。

    炮弹的口径决定你能不能碾压,入射位置和角度决定会不会跳弹、等效装甲厚度,入射速速影响穿深,和炮弹属性一起决定穿深,决定你能不能击穿,而炮弹标伤和模块血量决定这一发炮弹能造成多少伤害。

    写做函数self.destroy=D(P_in,P_out,Inf_ammunition)

    Self包含所有自身状态,P_in是相对入射点,P_out是炮弹射出位置,Inf_ammunition是炮弹属性。

   一颗炮弹打到船体上时,它能造成多少伤害是确定的。但是游戏中可以变化的因素很多,而炮又不是那么的准,可以指哪打哪,这就涉及到了概率的内容,留到下期再讲。


战舰世界数学教室1坐标系与伤害计算的评论 (共 条)

分享到微博请遵守国家法律