簡體   English   中英

Javascript游戲等級沖突

[英]Javascript Game Level Collision

我目前正在編寫我的第一個游戲,並且正在使用Javascript + HTML5 Canvas進行。 該游戲是具有WASD運動的自上而下的單擊式動作射擊游戲。 無論如何,昨天我完成了使用圓和四叉樹實現碰撞檢測以最小化比較的任務。 我將所有子彈,玩家和敵人扔進了四叉樹。 現在,一切正常,但是我不確定如何處理下一步,即在實際級別上處理碰撞。 子彈應該被牆壁擋住,演員(玩家和敵人)應該被柵欄和牆壁擋住,等等。

我是否應該定義形狀來表示水平牆並將其作為四叉樹中的一種對象形式包含在內,然后使用SAT評估每個元素是否與它可能發生碰撞的任何事物,或者是否存在其他方法(例如創建隱藏圖像)勾勒出路徑的圖層,然后測試每個對象的坐標,以確保它不會降落在黑色像素上(這將表明它正在與不動的地形相撞)?

謝謝。

來自類似的問題:

我建議閱讀這篇有關PacMan中鬼移動和碰撞檢測如何工作的出色文章。

然后,我建議在邏輯上將Bomberman關卡建模為圖塊的集合。 每個圖塊在您的關卡中代表一個離散的位置,從邏輯上講,不可能在“圖塊之間”或同時占據兩個圖塊。 每個圖塊都可以跟蹤當前處於哪種地形特征,以及它是否是玩家(和敵人)的有效目標圖塊,如果允許敵人穿越通常無法通行的地形,則每個圖塊可能具有不同的規則給玩家)。

然后,您無需為世界上的每個對象都使用碰撞檢測算法。 當敵人需要移動時,或者當用戶嘗試移動其角色時,您要做的就是檢查所有與其當前圖塊相鄰的圖塊(如果允許對角線移動,則為4或8個最大值),查看每個圖塊是否代表有效的移動方向,如果不正確,則阻止移動。

要回答您的問題,是的,每次更新位置時迭代世界上的每個對象都是非常低效的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM