簡體   English   中英

當我添加 this.physics 行時,Phaser ARCADE 物理不起作用

[英]Phaser ARCADE physics not working when i add this.physics line

我是 Phaser 的新手,我嘗試在其中制作游戲。
為了添加物理,我遵循了phaser.io物理教程。
這是我的代碼👇

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <style> body { margin: 0; padding: 0 } canvas { width: 100% } </style> <body> <!-- <script src="https://cdn.jsdelivr.net/npm/phaser@3.55.2/dist/phaser.min.js"></script> --> <script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/3.60.0-beta.3/phaser-arcade-physics.js"></script> <script> let config={ type: Phaser.AUTO, width: 1000, height: 500, backgroundColor: '#2bff00', physics: { default: 'matter', arcade: { gravity: {y: 0}, debug: true } }, scene: { preload: preload, create: create, update: update } } let game = new Phaser.Game(config); let enemy1dir = 1, enemy2dir = 2, enemy3dir = 3, enemy4dir = 4, enemy5dir = 5; function preload() { this.load.image('player', 'boydoctor.png'); this.load.image('enemy', 'coronavirus.png'); } let player, enemy1, enemy2, enemy3, enemy4, enemy5; function create() { this.physics.world.setBounds(0,0, 1000, 500); this.player = this.add.sprite(50, 250, 'player'); this.player.setScale(.2, .2); this.enemy1 = this.add.sprite(150, 50, 'enemy'); this.enemy1.setScale(.05, .05); this.enemy2 = this.add.sprite(300, 50, 'enemy'); this.enemy2.setScale(.05, .05); this.enemy3 = this.add.sprite(450, 50, 'enemy'); this.enemy3.setScale(.05, .05); this.enemy4 = this.add.sprite(600, 50, 'enemy'); this.enemy4.setScale(.05, .05); this.enemy5 = this.add.sprite(750, 50, 'enemy'); this.enemy5.setScale(.05, .05); } function update() { let height = this.sys.game.config.height; if (this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.UP).isDown) this.player.y -= 2; if (this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.DOWN).isDown) this.player.y += 2; if (this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.LEFT).isDown) this.player.x -= 2; if (this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.RIGHT).isDown) this.player.x += 2; if (this.enemy1.y > height - 50) enemy1dir = -1; else if (this.enemy1.y < 50) enemy1dir = 1; if (this.enemy2.y > height - 50) enemy2dir = -2; else if (this.enemy2.y < 50) enemy2dir = 2; if (this.enemy3.y > height - 50) enemy3dir = -3; else if (this.enemy3.y < 50) enemy3dir = 3; if (this.enemy4.y > height - 50) enemy4dir = -4; else if (this.enemy4.y < 50) enemy4dir = 4; if (this.enemy5.y > height - 50) enemy5dir = -5; else if (this.enemy5.y < 50) enemy5dir = 5; this.enemy1.y += enemy1dir; this.enemy2.y += enemy2dir; this.enemy3.y += enemy3dir; this.enemy4.y += enemy4dir; this.enemy5.y += enemy5dir; } </script> </body> </html>

在這個當我添加this.physics.world.setBounds(0,0, 1000, 500); 行有一個錯誤,但是當我刪除它時,它可以正常工作。 如果這種技術是錯誤的,那么我應該使用哪種技術將 ARCADE Physics 添加到游戲中?

我不確定這是否是一個大問題,但我在您的配置中注意到您將“matter”作為默認設置,但您想使用“arcade”。 也許將默認值更改為“街機”可能會奏效。

暫無
暫無

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

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