碰撞

From DDraceNetwork
Revision as of 02:30, 16 March 2023 by FightFire (talk | contribs) (Created page with "* 冻结激光的情况较为复杂。我们假定一束冻结激光垂直向上发射,发射点位于底部:(这束激光由最顶部的冻结激光,中间两格网格高的冻结激光,和最底部的光束光源组成。)")
此條目仍需進行內容補充,您可以幫助我們編輯和修訂以擴充其內容。

碰撞是一種地圖中會發生在玩家與實體、玩家或拋射物之間的交互效果。

介紹碰撞前,我們需要理解單位長度的概念。

想像一下,每一格網格都是由許多最小的正方形單元構成的,我們稱這種最小的正方形單元為單位長度。

每一個單位長度都代表着可以一個玩家在任何一個給定的時間裏佔據的一個單一的、獨一無二的位置。每一個單位長度都可能代表一個玩家的中心位置。

  • 一格網格在地圖中的大小為一個32*32個單位長度的正方形,這表明一名玩家可以在一格網格中佔據1024個獨一無二的位置。

實體碰撞

不同的實體擁有不同的碰撞箱體積。

相對於玩家的中心位置:

    • 多數標準DDRace實體(多數實體都是DDRace模式獨有的,例如凍結區域和傳送區域)的碰撞體積為32*32個單位長度的正方形區域;
    • 死亡區域的碰撞體積為50*50個單位長度的正方形區域;
    • 牆體實體(包括可鈎牆體,禁鈎牆體和鈎穿牆體)的碰撞體積為60*60個單位長度的正方形區域;
    • 凍結激光的情況較為複雜。我們假定一束凍結激光垂直向上發射,發射點位於底部:(這束激光由最頂部的凍結激光,中間兩格網格高的凍結激光,和最底部的光束光源組成。)
        • 對於左右兩側,凍結的判定區域為從中心開始,向左右各延伸28個單位長度;
        • 對於頂部,凍結的判定區域為從中心開始,半徑為27個單位長度的圓形區域;
        • 對於底部,凍結的判定區域是從中心開始,向下延伸28個單位長度的區域。
    • 單向板的情況會更加複雜一些。請注意——由於單向板容易被穿過,因此在擁有足夠大的速度去穿過單向板的情況下討論單向板的碰撞體積沒有多大的意義:
        • 單向板(假定向上)的判定區域為從中心開始,向上延伸34個單位長度的距離,向左、向右和向下延伸16個單位長度的距離,當玩家與之發生碰撞時,單向板會阻止玩家向與箭頭相反的方向移動;
        • 雙向板(假定向上和向下)的判定區域為從中心開始,向上和向下延伸34個單位長度的距離,向左和向右延伸16個單位長度的距離,當玩家與之發生碰撞時,雙向板會阻止玩家向着雙向板的方向移動;
        • 全向板的判定區域是從中心開始,向四個正方向分別延伸34個單位長度,當玩家與之發生碰撞時,全向版會阻止玩家向着全向版內部的方向移動。額外需要注意的是,全向版碰撞箱的形狀更類似於符號「+」,而非一個正方形。
        • 玩家可以用 武士刀來穿過單向板
    • 激光門的判定方式與單向板相同,因此也可以用足夠大的速度去穿過。

玩家碰撞

Tee的碰撞體積為一個直徑為28個單位長度的圓,但實際上當兩個玩家的中心距離為35個單位長度時就已經發生了交互。

玩家之間發生碰撞後,玩家會獲得與碰撞作用點相反方向的速度,獲得的速度大小取決於玩家之間發生碰撞時的中心距離(發生碰撞時,中心距離越遠,獲得的速度越小)以及發生碰撞時的角度(當碰撞的方向與兩名玩家的中心連線重合時,可以獲得最大的速度)。

玩家擁有的鈎索強弱等級也會影響到碰撞速度。擁有強鈎的玩家發生碰撞時會稍微多產生一點速度。


拋射物碰撞

待辦: Add hitboxes for a grenade