簡體   English   中英

與Phaser Arcade物理引擎碰撞

[英]Collision with Phaser Arcade physics engine

我正在嘗試使用Phaser Arcade Physics制作游戲,在該游戲中您可以控制精靈並避免帶有箭頭鍵的物體。 但是,我在使那些對象與精靈之間發生碰撞時遇到問題。

我的代碼: https//jsfiddle.net/o445dt44/

特別是在JSFiddle的第69行,我希望您看一看。

//game.physics.arcade.collide(sprite, enemy, enemy2, enemy3);

通常這應該完成碰撞的工作,但是事實並非如此。

任何幫助是極大的贊賞。 謝謝!

為了將來,您的JSFiddle缺少對Phaser的外部引用。 例如,您可以在https://cdnjs.cloudflare.com/ajax/libs/phaser/2.6.2/phaser.min.js包含CDN版本。

其次,您實際上沒有正確使用碰撞功能。 根據文檔,它實際上是collide(object1, object2, collideCallback, processCallback, callbackContext)

我創建了一個分叉版本 ,可以正確設置碰撞。 特別是進行了以下更改:

敵人需要設置在與sprite相同的級別上。

var enemy;
var enemy2;
var enemy3;

接下來,在更新中,考慮到事物的設置方式,需要分別設置所有對象之間的碰撞:

game.physics.arcade.collide(sprite, enemy);
game.physics.arcade.collide(sprite, enemy2);
game.physics.arcade.collide(sprite, enemy3);
game.physics.arcade.collide(enemy, enemy2);
game.physics.arcade.collide(enemy, enemy3);
game.physics.arcade.collide(enemy2, enemy3);

另一種更好的方法是將敵人設置為一組,然后讓精靈與該組碰撞。

有一個官方的Sprite Vs Group示例可以解決這個問題。 如果要讓敵人碰撞,則可以將組設置為與自身碰撞。

game.physics.arcade.collide(enemies, enemies);

暫無
暫無

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

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