DDNET 知识库

中文 Wiki

DDNet Workshop 中文知识库,收录 79 Wiki 词条,涵盖游戏技巧、机制等内容,提升广大玩家游戏理解

碰撞 Collision
游戏机制•游戏机制

碰撞 Collision

碰撞是地图中发生在玩家与实体、抛射物之间的交互效果,不同实体拥有不同的碰撞箱体积

碰撞Collision碰撞箱实体接触玩家碰撞
2024-01-01

来源: https://wiki.ddnet.org/wiki/Collision 提示:本文内容尚不完整,待补充。

碰撞是一种 地图 中会发生在玩家与实体、抛射物之间的交互效果。

单位长度概念

介绍碰撞前,我们需要理解单位长度的概念:

  • 每一格网格都是由许多最小的 正方形单元 构成的
  • 这种最小的正方形单元称为单位长度
  • 每一个单位长度都代表着一个玩家在给定时间里占据的单一的、独一无二的位置
  • 每一个单位长度都可能代表一个玩家的中心位置

网格大小:

  • 一格网格在地图中的大小为一个 32×32 个单位长度的正方形
  • 这表明一名玩家可以在一格网格中占据 1024 个独一无二的位置

实体接触

不同的实体拥有不同的碰撞箱体积。考虑玩家的中心点,在靠近某些实体后会判定和实体发生接触(碰撞):

标准实体碰撞体积

实体类型碰撞体积效果
标准 DDRace 实体32×32 单位长度触发对应效果
死亡区域50×50 单位长度触发死亡
墙体60×60 单位长度阻止玩家进入

标准 DDRace 实体包括多数 DDRace 模式独有的实体,例如 冻结 区域和 传送 区域。

冻结激光方块

冻结激光方块的情况较为复杂。假定一束冻结激光垂直向上发射,发射点位于底部:

部位判定区域
中间光线左右两侧从中线开始,向左右各延伸28 个单位长度
顶部从中心点开始,半径为27 个单位长度的圆形区域
底部光源从中心开始,向下延伸28 个单位长度的区域

注意:冻结激光是可以平移和旋转的,这种情况下判定十分复杂。

阻滞器

阻滞器的情况会更加复杂一些。由于阻滞器容易被穿过,在拥有足够大的速度去穿过阻滞器的情况下讨论单向板的碰撞体积没有多大的意义:

阻滞器类型判定区域阻止方向
单向阻滞器(向上)向上 34 单位,左右下各 16 单位阻止向与箭头相反的方向移动
双向阻滞器(向上和向下)向上向下各 34 单位,左右各 16 单位阻止向着双向板的方向移动
四向(全向)阻滞器四个正方向各 34 单位阻止向着全向版内部的方向移动

注意:四向阻滞器碰撞箱的形状更类似于符号 "+",而非一个正方形。

特殊技巧:

  • 玩家可以用 武士刀 来穿过 阻滞器
  • 激光门的判定方式与阻滞器相同,因此也可以用足够大的速度去穿过

玩家间碰撞

碰撞体积:

  • Tee 的碰撞体积为一个直径为 28 个单位长度的圆
  • 但实际上当两个玩家的中心距离为 35 个单位长度时就已经发生了交互

碰撞效果:

玩家之间发生碰撞后:

  • 玩家会获得与碰撞作用点相反方向的速度
  • 获得的速度大小取决于:
    • 玩家之间发生碰撞时的中心距离(中心距离越远,获得的速度越小)
    • 发生碰撞时的角度(当碰撞的方向与两名玩家的中心连线重合时,可以获得最大的速度)

钩索强弱影响:

  • 玩家拥有的 钩索强弱等级 也会影响到碰撞速度
  • 拥有强钩的玩家发生碰撞时会稍微多产生一点速度

拋射物碰撞

Add hitboxes for a grenade


小提示

  • 一格网格为 32×32 单位长度,包含 1024 个可能位置
  • 墙体的碰撞体积(60×60)比标准实体(32×32)更大
  • 死亡区域的碰撞体积为 50×50
  • 玩家间碰撞距离为 35 单位时即发生交互
  • 强钩玩家在碰撞时会产生稍微更多的速度
  • 武士刀可以穿过阻滞器和激光门