6、 物理规则
物理表现要求总则:
游戏的物理引擎需要尽可能完整地表现动量守恒。人体在碰撞中对动能的吸收效果可以近似模拟但仍不得违背动量守恒原则。详细的,引擎应该能较真实地模拟三维空间中各种碰撞形式(对心碰撞、斜碰,以及以上两中情况下的完全弹性碰撞、非完全弹性碰撞)及恒力或变力对物体的作用。所有的碰撞过程可作为瞬间处理,即只关心碰撞的结果。
如果ODE可以满足以上要求,建议使用该引擎——它是开源的。
以下规则均建立在以场地舱壁为惯性参照的绝对坐标系中(舱壁质量为无穷大),以较真实地表现牛顿力学并尽可能简化计算为目的。
1) 失重球与舱壁的碰撞为完全弹性碰撞,无摩擦力影响。
程序处理建议:以舱壁法线为坐标纵轴,以失重球在舱壁上的投影速度方向为坐标横轴,垂直分解失重球的速度。失重球垂直于舱壁方向的分速度方向反转180度,平行于舱壁方向的分速度(投影速度)不发生改变。
2) 失重球与球员碰撞。
a) 若球员得球,则直接视为完全非弹性对心碰撞——球与球员成为一个“联合体”,质量为2者之和(即得球后的球员质量变为90KG)。
程序处理建议:对碰撞发生前一刻的双方动量求矢量和即得碰撞后“联合体”的动量,速度=动量/质量(矢量运算)。碰撞发生后,失重球的碰撞体积消失,以球员的碰撞体积作为“联合体”的碰撞体积,仅对“联合体”按动量计算结果重设速度。
b) 若球员未能得球(碰撞发生时球不在球员视野范围内),视为非完全弹性碰撞——碰撞后2者分离,但碰撞方向上(碰撞瞬间2者碰撞体积中心连线的方向)球员身体吸收该方向上碰撞动能的一部分。不考虑摩擦力。因没有外力介入,碰撞之后系统总动量不发生改变,即动量守恒。
程序处理建议:检测到此类碰撞,先在碰撞时2者连心线与碰撞前一瞬间2者速度方向所分别构成的平面上以连心线为坐标横轴对2者速度分别垂直分解。因为不考虑摩擦,所以2者各自在非连心线方向上的分速度都保持不变。2者连心线方向上分速度的处理……限于时间,还有待商榷——关键是物体材料力学特性确定的情况下如何简化处理动能损失所产生的效果(避免求解高次方程)且保证动量守恒的问题。
3) 失重球的随机弹射与投掷。
失重球在弹射或被掷出后须继承先前和球员一起运动时的速度。根据弹射速度或球员给出的投掷速度以及动量守恒原则设定球员速度。
4) 球员与舱壁的碰撞。
为完全非弹性碰撞,摩擦力看作无穷大。即球员的碰撞体积接触舱壁速度即变为零,且吸附其上与舱壁成为一体。
5) 球员弹跳脱离舱壁。
按球员给出弹跳力的大小以及球员本身质量(平时为80KG,得球后为90KG)设置速度大小。速度方向通常为球员视野中轴线。
6) 球员与球员碰撞。
为非完全弹性碰撞,效果类似球与球员的碰撞(球员未能得球),碰撞后2者总动量守恒,但总动能减少。动能减少量
7) 使用喷气背囊。
使用喷气背囊不影响球员质量,仅仅凭空给球员一个大小恒定而方向(通常为球员视野中轴线方向)可由球员实时改变的力。按力的作用时间和方向以及球员当时的质量设置速度。这在物理系统中应作为一个特例来处理。关键问题:在球员使用喷气时与其它物体发生碰撞。
8) 使用弹跳增幅装置。
仅仅增加球员可以给出的弹跳力大小上限。
9) 使用电磁套索。
在2个球员连心线方向上施加一个160牛顿的向相力,作用5秒。相当于用一根收缩力恒定为160牛顿的弹性绳子系住双方球员。此规则可能需要较大的运算量,如难以实现可考虑更加简化的处理方式或取消该规则及相关道具。
7、 玩家交流
1) 战术表情:包括“传球给我”,“我得球了,掩护我”、“***接球”等一类战术用表情
2) 文字聊天频道:略
3) 语音电台:据说这个东西的授权费用很高,没有调查过。如果如此,这个可以取消或采取其他代替办法。
4) 好友列表:可直接调出添加好友界面,在其中输入好友名字加入,也可在准备房间中选取某玩家后直接拖拽到好友列表中。添加好友不对被添加方发出询问。添加到好友列表后,你便可以通过好友列表更方便的与该玩家私聊。也可以通过好友列表邀请对方加入你的房间,邀请将对你的好友发出询问,但你无法对一个已在进行比赛的好友发起邀请。删除好友需要在列表中选中一个好友按“删除”按钮执行删除,删除之前将发出确认询问。可长期保存。
5) 黑名单:与好友列表相对应,将某玩家拖动到黑名单即屏蔽该玩家所有聊天信息,包括文字聊天和语音电台,但不包括战术表情。可长期保存。

让我想起红白机的 接球
- -!
内容比较新颖,不错!很多地方值得借鉴,建议作者在权限中设计房主对游戏场景的可选性
有咩意思?
,05/29/2007 20:47:33
)
写这些有什么意思?