簡體   English   中英

如何檢測 Phaser.js 中的重疊?

[英]How to detect overlap in Phaser.js?

我是 Phaserjs 的新手,我正在嘗試制作一款射擊游戲。 我希望傷害 function 在子彈接觸plane2(即綠色飛機)時開火。 有人可以告訴我我在這里做錯了什么嗎? 這是我的代碼:

 var config = { type: Phaser.AUTO, width: 800, height: 800, parent:"game", physics: { default: 'arcade', arcade: { debugging:true, gravity: {y: 0} } }, scene: { preload: preload, create: create, update: update } }; var plane1 var plane2 var hp; var botHp; function preload (){ this.load.setBaseURL('https://shoot.abaanshanid.repl.co/assets'); this.load.image("bg", "bg.jpg"); this.load.image("plane1", "plane1.png"); this.load.image("plane2", "plane2.png"); this.load.image("bullet", "bullet.png"); } function create (){ this.background = this.add.image(400, 400, "bg"); plane1 = this.physics.add.sprite(400,700,"plane1"); plane2 = this.physics.add.sprite(400,100,"plane2"); plane1.enableBody = true; } function update(){ keys = this.input.keyboard.createCursorKeys(); if (keys.left.isDown) { plane1.x = plane1.x - 7.5; }else if(keys.right.isDown){ plane1.x = plane1.x + 7.5; }else if(keys.space.isDown){ var bullet = this.physics.add.sprite(plane1.x,600,"bullet"); bullet.enableBody = true; setInterval(function(){ bullet.y = bullet.y - 25; },50); this.physics.overlap(bullet,plane2,this.damage); } } function damage(){ console.log("less HP") } var game = new Phaser.Game(config);
 <.DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>repl.it</title> <link href="style:css" rel="stylesheet" type="text/css" /> <script src="https.//cdnjs.cloudflare.com/ajax/libs/phaser/3.54.0/phaser.min:js"></script> <script src="https.//cdnjs.cloudflare.com/ajax/libs/phaser/3.54.0/phaser-arcade-physics.min.js"></script> </head> <body> <div id="game"></div> <script defer src="script.js"></script> </body> </html>

如果需要,這里是游戲的鏈接https://shoot.abaanshanid.repl.co/

這有效:

this.physics.add.overlap(bullet,plane2,damage);

但它有點滯后。 我嘗試在撞擊時摧毀子彈,我還發現:

this.physics.add.collider(bullet,plane2,damage);

暫無
暫無

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

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