魔獸爭霸碰撞體積研討

2021-06-17 18:13:05 字數 1858 閱讀 8939

最近做演算法才發現以前的一些誤區

也明白了為什麼有些實驗與理論不符

以前雖然知道單位是方塊,但當時以為碰撞體積 = 方塊邊長(其實不對應,而且應為1/2邊長)

以為建築空一格是32(其實是64)

- 射程相差100帶來多少陣型優勢問題

- tr地圖 4點-5點之間用2個ac堵住路的問題

- 坦克為何有時能打到古樹圍住的基地的問題

- 狗和ac碰撞只差1,為何實戰相差如此多的問題

- 是否能把兩個單位控制到留乙個縫隙,使碰撞=16的農民能通過,而碰撞=31的狗不能

(不妨用2個單位比如2個狗擺一擺,無論擺成什麼樣只要農民能過狗就一定能過,儘管狗的碰撞比農民大)

幾點基礎知識

* 單位都是方形。

* 方塊不會隨著單位轉向而轉動,永遠是平直的方塊。

* 單位能通過某個縫隙的條件是,縫隙的寬度和長度都允許通過。

(由於方塊不會轉動,所以橫向空一格過不去,斜著空一格還是過不去。)

* 度量距離的單位可以理解為,128寬度 = 128速度的單位走1秒經過的距離。

* 1 tile = 乙個人族房子寬度 = 1棵普通的樹寬度 = 1層懸崖高度 = 128.00

tile是地形的最小度量單位。

* 1 路徑 = 建築偏一格 = 1/2 tile = 64.00

路徑是建築占地的最小度量單位。

建築和可破壞物、裝飾物計算路徑

建築只算路徑,不算碰撞.

例如人族房子碰撞72沒有意義。只算他的路徑2x2,即128x128

ne古樹坐下算路徑,站立算碰撞

非建築單位所佔地方,並不完全等於碰撞

而是劃分為幾類

碰撞 實際占用正方形的寬度

0 - 15  寬度16x2 = 32

16 - 31  寬度32x2 = 64

32 - 47  寬度48x2 = 96

48以上  寬度64x2 = 128

例如:

1個農民的寬度是64。

1個步兵的寬度也是64。

1個弓箭手的寬度是96。

2個步兵站在一起,他們的中心座標的距離是32 + 32 = 64。

2個弓箭手站在一起的距離是96。

步兵和火槍站在一起的距離是80。

狗的碰撞 = 31,ac的碰撞 = 32,知道有多大區別嗎?

9個狗佔的面積和4個ac佔的面積一樣!

僅僅這1的差別,導致了乙個層次的變化。

寬度最大值為 1 tile,無論碰撞多少實際不會超過128

因此即使古樹的碰撞很大(144,按理應該佔288以上寬度)

仍然能吃進樹林裡1棵樹的寬度 = 128

實際上,即便碰撞=0的單位,同樣既不能穿人也不能被穿

陰影能被穿只是因為他擁有ghost技能,

使得它不對其他單位造成碰撞。

但陰影本身不能穿人。

在特殊情況下最多容許兩者距離縮小16左右。

例如兩個火槍之間距離96 -> 80

卡位應當是這種特殊情況的高發情形。

有時會出現被卡者把卡位者擠到瞬移,也有時會出現

看起來已經被突破,卻能強行繞到前面繼續卡位。

猜猜看,同等移動速度下,體積小的單位適合卡位別人,還是體積大的單位適合卡位別人?

魔獸爭霸系統

首先我們先編寫魔獸系統中的使用者資訊類 logininfo 用來存放屬性 封裝屬性 電子郵箱 private string email public string email set 身份證號碼 private string id public string id set 姓名 private st...

魔獸爭霸3技術分析資源彙總

策劃設計 講的是第一代,也很有參考價值。中文版 mpq是暴雪公司用於遊戲資料打包的工具,能夠把資源放在乙個包裡,然後對其進行壓縮和加密。網上已經有很多的詳解 warcraft 3使用的是lock step技術,就是多個玩家的計算結果必須一樣的,誰落後了就要大家等他同步上來。lock step的特點,...

在手機上玩魔獸爭霸2

至從買了moto的e608i手機,它就不斷的給我驚喜。在手機上玩魔獸,請按照如下步驟操作 在你的計算機上解壓stratagusqvga.rar檔案,並重命名data資料夾為data.w2 複製data.w2至你的手機上stratagus的安裝目錄,比如 system qtdownload strat...