游戏机制•游戏机制
碰撞 Collision
碰撞是地图中发生在玩家与实体、抛射物之间的交互效果,不同实体拥有不同的碰撞箱体积
碰撞Collision碰撞箱实体接触玩家碰撞
2024-01-01
来源: https://wiki.ddnet.org/wiki/Collision 提示:本文内容尚不完整,待补充。
碰撞是一种 地图 中会发生在玩家与实体、抛射物之间的交互效果。
单位长度概念
介绍碰撞前,我们需要理解单位长度的概念:
- 每一格网格都是由许多最小的 正方形单元 构成的
- 这种最小的正方形单元称为单位长度
- 每一个单位长度都代表着一个玩家在给定时间里占据的单一的、独一无二的位置
- 每一个单位长度都可能代表一个玩家的中心位置
网格大小:
- 一格网格在地图中的大小为一个 32×32 个单位长度的正方形
- 这表明一名玩家可以在一格网格中占据 1024 个独一无二的位置
实体接触
不同的实体拥有不同的碰撞箱体积。考虑玩家的中心点,在靠近某些实体后会判定和实体发生接触(碰撞):
标准实体碰撞体积
标准 DDRace 实体包括多数 DDRace 模式独有的实体,例如 冻结 区域和 传送 区域。
冻结激光方块
冻结激光方块的情况较为复杂。假定一束冻结激光垂直向上发射,发射点位于底部:
注意:冻结激光是可以平移和旋转的,这种情况下判定十分复杂。
阻滞器
阻滞器的情况会更加复杂一些。由于阻滞器容易被穿过,在拥有足够大的速度去穿过阻滞器的情况下讨论单向板的碰撞体积没有多大的意义:
注意:四向阻滞器碰撞箱的形状更类似于符号 "+",而非一个正方形。
特殊技巧:
玩家间碰撞
碰撞体积:
- Tee 的碰撞体积为一个直径为 28 个单位长度的圆
- 但实际上当两个玩家的中心距离为 35 个单位长度时就已经发生了交互
碰撞效果:
玩家之间发生碰撞后:
- 玩家会获得与碰撞作用点相反方向的速度
- 获得的速度大小取决于:
- 玩家之间发生碰撞时的中心距离(中心距离越远,获得的速度越小)
- 发生碰撞时的角度(当碰撞的方向与两名玩家的中心连线重合时,可以获得最大的速度)
钩索强弱影响:
- 玩家拥有的 钩索强弱等级 也会影响到碰撞速度
- 拥有强钩的玩家发生碰撞时会稍微多产生一点速度
拋射物碰撞
小提示
- 一格网格为 32×32 单位长度,包含 1024 个可能位置
- 墙体的碰撞体积(60×60)比标准实体(32×32)更大
- 死亡区域的碰撞体积为 50×50
- 玩家间碰撞距离为 35 单位时即发生交互
- 强钩玩家在碰撞时会产生稍微更多的速度
- 武士刀可以穿过阻滞器和激光门