方塊的戰爭:淺談格鬥遊戲的精髓
(h9856.blogspot.tw)
嘛.... 我只做過一些 flash 的小遊戲,坦克射射子彈之類的。有件事我印像很深刻就是做圓型的爆波,被爆波擊中就損血。而圓型的爆波的特點就是左上右下等等四個角落不能被 hit 的到。
圓型的 hit test 自然可以算半徑啦,但就跟這篇講的一樣,引擎都會限制可以 hit 的形狀要矩型。理論上疊兩個矩型十字型去模擬圓型,角落就炸不到了:
+----------+
| |
| |
+----------------------+
| | | |
| | | |
| | | |
| | | |
+----------------------+
| |
| |
+----------+
但我用的引擎那時候還有一個限制是一個 frame 只能有一個矩型可以 hit 。哇,這真是苦死我了,想了老半天最後才想到:喔,我可以一個 frame 擺橫的矩型,下一個 frame 擺直的,一直交替切換就行了,反正 1 秒隨便也有 20~30 frames ,躲的過第一個 frame,躲不過第二個,很容易中的。
真是個黑歷史啊~
allen_chou
積分 2
交替切換不同矩形,某種程度而言可以算是time-slicing,雖然說time-slicing技巧的本意是要把吃效能的邏輯分散到多個frame,我在工作上常常用這招來分散AI運算資源消耗