Collision/zh: Difference between revisions

FightFire (talk | contribs)
Created page with "{{DISPLAYTILTE:碰撞}} {{LangNavBox}} {{stub/zh}} '''碰撞'''是一种地图中会发生在玩家与实体、玩家或弹幕之间的交互效果。 介绍碰撞前,我们需要理解单位长度的概念。 想象一下,每一格网格都是由许多最小的正方形单元构成的,我们称这种最小的正方形单元为单位长度。每一个单位长度都代表着可以一个玩家在任何一个给定的时间里占据的一个单一的、..."
 
Darkh (talk | contribs)
No edit summary
Tags: Mobile edit Mobile web edit
 
(26 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{DISPLAYTILTE:碰撞}}
{{MigrateTranslation}}
{{LangNavBox}}
<languages/>
{{stub/zh}}
{{Stub}}
'''碰撞'''是一种[[world|地图]]中会发生在玩家与实体、玩家或弹幕之间的交互效果。
'''碰撞'''是一种[[Special:MyLanguage/world|地图]]中会发生在玩家与实体、拋射物之间的交互效果。  


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


想象一下,每一格网格都是由许多最小的正方形单元构成的,我们称这种最小的正方形单元为单位长度。每一个单位长度都代表着可以一个玩家在任何一个给定的时间里占据的一个单一的、独一无二的位置。每一个单位长度都可能代表一个玩家的中心位置
想象一下,每一格网格都是由许多最小的[[Special:MyLanguage/Tiles|正方形单元]]构成的,我们称这种最小的正方形单元为单位长度。


* 一格网格在地图中的大小为一个<code>32*32</code>个单位长度的正方形。(这表明一名玩家可以在一格网格中占据<code>1024</code>个独一无二的位置。
每一个单位长度都代表着可以一个玩家在任何一个给定的时间里占据的一个单一的、独一无二的位置。每一个单位长度都可能代表一个玩家的中心位置。
 
* 一格网格在地图中的大小为一个<code>32*32</code>个单位长度的正方形这表明一名玩家可以在一格网格中占据<code>1024</code>个独一无二的位置。
 
<span id="Tile_Collision"></span>
== 实体接触 ==


== 实体碰撞 ==
不同的实体拥有不同的碰撞箱体积。
不同的实体拥有不同的碰撞箱体积。


对于玩家的中心位置:
考虑玩家的中心点,在靠近某些实体后会判定和实体发生接触(碰撞):
** 多数标准DDRace实体(多数实体都是DDRace模式独有的,例如[[Special:MyLanguage/Freeze|冻结]]区域和[[Special:MyLanguage/teleporter|传送]]区域)的碰撞体积为<code>32x32</code>个单位长度的正方形区域,玩家接触会触发对应效果;
** {{TileLink|{{Tile|game|2}}|Death/zh|死亡}} [[Special:MyLanguage/Tiles|区域]]的碰撞体积为<code>50x50</code>个单位长度的正方形区域,玩家接触会触发[[Special:MyLanguage/Death|死亡]];
** [[Special:MyLanguage/Tiles|墙体]](包括{{Tile|entities|3}}不可钩墙体,{{Tile|entities|1}}可钩墙体和可穿透墙体)的碰撞体积为<code>60*60</code>个单位长度的正方形区域,会阻止玩家进入其中;
** 冻结激光方块的情况较为复杂。我们假定一束冻结激光垂直向上发射,发射点位于底部:(这束激光由“顶部”,中间两格高的光线,和最底部的光源组成。)
**** 对于中间光线的左右两侧,冻结的判定区域从中线开始,向左右各延伸<code>28</code>个单位长度;
**** 对于“顶部”,冻结的判定区域从中心点开始,半径为<code>27</code>个单位长度的圆形区域;
**** 对于底部光源,冻结的判定区域是从中心开始,向下延伸<code>28</code>个单位长度的区域。
 
需要注意的一点是冻结激光是可以平移和旋转的,这种情况下判定十分复杂。
** 阻滞器的情况会更加复杂一些。请注意——由于阻滞器容易被穿过,因此在拥有足够大的速度去穿过阻滞器的情况下讨论单向板的碰撞体积没有多大的意义:
**** {{Tile|entities|60}}单向阻滞器(假定向上)的判定区域为从中心开始,向上延伸<code>34</code>个单位长度的距离,向左、向右和向下延伸<code>16</code>个单位长度的距离,当玩家与之发生碰撞时,单向阻滞器会阻止玩家向与箭头相反的方向移动;
**** {{Tile|entities|61}}双向阻滞器(假定向上和向下)的判定区域为从中心开始,向上和向下延伸<code>34</code>个单位长度的距离,向左和向右延伸<code>16</code>个单位长度的距离,当玩家与之发生碰撞时,双向阻滞器会阻止玩家向着双向板的方向移动;
**** {{Tile|entities|62}}四向(全向)阻滞器判定区域是从中心开始,向四个正方向分别延伸<code>34</code>个单长度,当玩家与之发生碰撞时,全向版会阻止玩家向着全向版内部的方向移动。额外需要注意的是,四向阻滞器碰撞箱的形状更类似于符号“+”,而非一个正方形。
**** 玩家可以用{{Ninja|武士刀|zh}}来穿过[[Special:MyLanguage/Stoppers|阻滞器]]
** 激光门的判定方式与阻滞器相同,因此也可以用足够大的速度去穿过。


* 多数标准DDRace实体(多数实体都是DDRace模式独有的,例如冻结区域和传送区域)的碰撞体积为<code>32*32</code>个单位长度的正方形区域;
<span id="Tee_Collision"></span>
* 即死区域的碰撞体积为<code>50*50</code>个单位长度的正方形区域;
== 玩家碰撞 ==
* 墙体实体(包括可钩墙体,禁钩墙体和钩穿墙体)的碰撞体积为<code>60*60</code>个单位长度的正方形区域;
* 冻结激光的情况较为复杂。我们假定一束冻结激光垂直向上发射,发射点位于底部:(这束激光由最顶部的冻结激光,中间两格网格高的冻结激光,和最底部的光束光源组成。)
** 对于左右两侧,冻结的判定区域为从中心开始,向左右各延伸<code>28</code>个单位长度;
** 对于顶部,冻结的判定区域为从中心开始,半径为<code>27</code>个单位长度的圆形区域;
** 对于底部,冻结的判定区域是从中心开始,向下延伸<code>28</code>个单位长度的区域。
* 单向板的情况会更加复杂一些。请注意——由于单向板容易被穿过,因此在拥有足够大的速度去穿过单向板的情况下讨论单向板的碰撞体积没有多大的意义:
** 单向板(假定向上)的判定区域为从中心开始,向上延伸<code>34</code>个单位长度的距离,向左、向右和向下延伸<code>16</code>个单位长度的距离,当玩家与之发生碰撞时,单向板会阻止玩家向与箭头相反的方向移动;
** 双向版(假定向上和向下)的判定区域为从中心开始,向上和向下延伸<code>34</code>个单位长度的距离,向左和向右延伸<code>16</code>个单位长度的距离,当玩家与之发生碰撞时,双向板会阻止玩家向着双向板的方向移动;
** 全向版的判定区域是从中心开始,向四个正方向分别延伸<code>34</code>个单位长度,当玩家与之发生碰撞时,全向版会阻止玩家向着全向版内部的方向移动。额外需要注意的是,全向版碰撞箱的形状更类似于加法符号“+”,而非一个正方形。
** 玩家可以用[[Ninja/zh]]来穿过单向板。
* 激光门的判定方式与单向板相同,因此也可以用足够大的速度去穿过。


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


Line 36: Line 43:
玩家拥有的[[Hook/zh#弱钩/强钩|钩索强弱等级]]也会影响到碰撞速度。拥有强钩的玩家发生碰撞时会稍微多产生一点速度。
玩家拥有的[[Hook/zh#弱钩/强钩|钩索强弱等级]]也会影响到碰撞速度。拥有强钩的玩家发生碰撞时会稍微多产生一点速度。


== 弹幕碰撞 ==
 
待补充。
<span id="Projectile_Collision"></span>
== 拋射物碰撞 ==
 
{{Todo|Add hitboxes for a [[Special:MyLanguage/Grenade|grenade]]}}
 
[[Category:Game-Mechanic{{#translation:}}]]