Collision/zh: Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
<languages/> | <languages/> | ||
{{Stub}} | {{Stub}} | ||
'''碰撞'''是一种[[Special:MyLanguage/world|地图]]中会发生在玩家与 | '''碰撞'''是一种[[Special:MyLanguage/world|地图]]中会发生在玩家与实体、拋射物之间的交互效果。 | ||
介绍碰撞前,我们需要理解单位长度的概念。 | 介绍碰撞前,我们需要理解单位长度的概念。 | ||
Line 13: | Line 13: | ||
<span id="Tile_Collision"></span> | <span id="Tile_Collision"></span> | ||
== | == 实体接触 == | ||
不同的方块拥有不同的碰撞箱体积。 | 不同的方块拥有不同的碰撞箱体积。 | ||
考虑玩家的中心点,在进入某些方块范围后会判定和方块发生接触(碰撞): | 考虑玩家的中心点,在进入某些方块范围后会判定和方块发生接触(碰撞): | ||
** 多数标准DDRace | ** 多数标准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|死亡]]; | ** {{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>个单位长度的正方形区域,会阻止玩家进入其中; | ** [[Special:MyLanguage/Tiles|墙体]](包括{{Tile|entities|3}}不可钩墙体,{{Tile|entities|1}}可钩墙体和可穿透墙体)的碰撞体积为<code>60*60</code>个单位长度的正方形区域,会阻止玩家进入其中; |
Revision as of 07:31, 3 June 2023
碰撞是一種地圖中會發生在玩家與實體、拋射物之間的交互效果。
介紹碰撞前,我們需要理解單位長度的概念。
想象一下,每一格網格都是由許多最小的正方形單元構成的,我們稱這種最小的正方形單元為單位長度。
每一個單位長度都代表着可以一個玩家在任何一個給定的時間裡占據的一個單一的、獨一無二的位置。每一個單位長度都可能代表一個玩家的中心位置。
- 一格網格在地圖中的大小為一個
32*32
個單位長度的正方形,這表明一名玩家可以在一格網格中占據1024
個獨一無二的位置。
實體接觸
不同的方塊擁有不同的碰撞箱體積。
考慮玩家的中心點,在進入某些方塊範圍後會判定和方塊發生接觸(碰撞):
- 多數標準DDRace實體(多數實體都是DDRace模式獨有的,例如凍結區域和傳送區域)的碰撞體積為
32x32
個單位長度的正方形區域,玩家接觸會觸發對應效果; - 死亡 區域的碰撞體積為
50x50
個單位長度的正方形區域,玩家接觸會觸發死亡; - 牆體(包括不可鈎牆體,可鈎牆體和可穿透牆體)的碰撞體積為
60*60
個單位長度的正方形區域,會阻止玩家進入其中; - 凍結激光方塊的情況較為複雜。我們假定一束凍結激光垂直向上發射,發射點位於底部:(這束激光由「頂部」,中間兩格高的光線,和最底部的光源組成。)
- 對於中間光線的左右兩側,凍結的判定區域從中線開始,向左右各延伸
28
個單位長度; - 對於「頂部」,凍結的判定區域從中心點開始,半徑為
27
個單位長度的圓形區域; - 對於底部光源,凍結的判定區域是從中心開始,向下延伸
28
個單位長度的區域。
- 對於中間光線的左右兩側,凍結的判定區域從中線開始,向左右各延伸
- 多數標準DDRace實體(多數實體都是DDRace模式獨有的,例如凍結區域和傳送區域)的碰撞體積為
需要注意的一點是凍結激光是可以平移和旋轉的,這種情況下判定十分複雜。
- 阻滯器的情況會更加複雜一些。請注意——由於阻滯器容易被穿過,因此在擁有足夠大的速度去穿過阻滯器的情況下討論單向板的碰撞體積沒有多大的意義:
- 單向阻滯器(假定向上)的判定區域為從中心開始,向上延伸
34
個單位長度的距離,向左、向右和向下延伸16
個單位長度的距離,當玩家與之發生碰撞時,單向阻滯器會阻止玩家向與箭頭相反的方向移動; - 雙向阻滯器(假定向上和向下)的判定區域為從中心開始,向上和向下延伸
34
個單位長度的距離,向左和向右延伸16
個單位長度的距離,當玩家與之發生碰撞時,雙向阻滯器會阻止玩家向着雙向板的方向移動; - 四向(全向)阻滯器的判定區域是從中心開始,向四個正方向分別延伸
34
個單位長度,當玩家與之發生碰撞時,全向版會阻止玩家向着全向版內部的方向移動。額外需要注意的是,四向阻滯器碰撞箱的形狀更類似於符號「+」,而非一個正方形。 - 玩家可以用 武士刀來穿過阻滯器
- 單向阻滯器(假定向上)的判定區域為從中心開始,向上延伸
- 激光門的判定方式與阻滯器相同,因此也可以用足夠大的速度去穿過。
- 阻滯器的情況會更加複雜一些。請注意——由於阻滯器容易被穿過,因此在擁有足夠大的速度去穿過阻滯器的情況下討論單向板的碰撞體積沒有多大的意義:
玩家間碰撞
Tee的碰撞體積為一個直徑為28
個單位長度的圓,但實際上當兩個玩家的中心距離為35
個單位長度時就已經發生了交互。
玩家之間發生碰撞後,玩家會獲得與碰撞作用點相反方向的速度,獲得的速度大小取決於玩家之間發生碰撞時的中心距離(發生碰撞時,中心距離越遠,獲得的速度越小)以及發生碰撞時的角度(當碰撞的方向與兩名玩家的中心連線重合時,可以獲得最大的速度)。
玩家擁有的鈎索強弱等級也會影響到碰撞速度。擁有強鈎的玩家發生碰撞時會稍微多產生一點速度。
拋射物碰撞
待辦: Add hitboxes for a grenade