15
方塊的戰爭:淺談格鬥遊戲的精髓 (h9856.blogspot.tw)
IngramChen 積分 5 編輯於

嘛.... 我只做過一些 flash 的小遊戲,坦克射射子彈之類的。有件事我印像很深刻就是做圓型的爆波,被爆波擊中就損血。而圓型的爆波的特點就是左上右下等等四個角落不能被 hit 的到。

圓型的 hit test 自然可以算半徑啦,但就跟這篇講的一樣,引擎都會限制可以 hit 的形狀要矩型。理論上疊兩個矩型十字型去模擬圓型,角落就炸不到了:

      +----------+      
      |          |      
      |          |      
+----------------------+
|     |          |     |
|     |          |     |
|     |          |     |
|     |          |     |
+----------------------+
      |          |      
      |          |      
      +----------+  

但我用的引擎那時候還有一個限制是一個 frame 只能有一個矩型可以 hit 。哇,這真是苦死我了,想了老半天最後才想到:喔,我可以一個 frame 擺橫的矩型,下一個 frame 擺直的,一直交替切換就行了,反正 1 秒隨便也有 20~30 frames ,躲的過第一個 frame,躲不過第二個,很容易中的。

真是個黑歷史啊~

allen_chou 積分 2

交替切換不同矩形,某種程度而言可以算是time-slicing,雖然說time-slicing技巧的本意是要把吃效能的邏輯分散到多個frame,我在工作上常常用這招來分散AI運算資源消耗

ickxlin 積分 2

通篇看下來增加了一項新知識 - 為什麼要用方塊而不是其它形狀?

因為利於開發與運算!

XD