簡體   English   中英

Phaser - Arcade碰撞物理學

[英]Phaser - Arcade collision physics

我正在使用Phaser框架進行簡單的平鋪游戲,但遺憾的是,在使用Arcade碰撞方法時,我偶然發現了一個“錯誤”。 我希望所有的瓷磚完美地堆疊在一起,但頂部的瓷磚總是穿過它們下方的瓷磚。

這是代碼:

 var game = new Phaser.Game(700, 700, Phaser.AUTO, 'phaser-demo', { create: create, update: update }); var tiles, textureRegistry = {}; function create() { game.physics.startSystem(Phaser.Physics.ARCADE); game.physics.arcade.gravity.y = 500; tiles = game.add.group(); tiles.physicsBodyType = Phaser.Physics.ARCADE; tiles.enableBody = true; for (var i = 0; i < 10; i++) { for (var j = 0; j < 10; j++) { tiles.add(game.add.sprite(i * 70, j * 70, createBlock(64, 'red'))); } } tiles.setAll('body.collideWorldBounds', true); tiles.setAll('body.bounce', new Phaser.Point(0.5, 0.5)); } function update() { game.physics.arcade.collide(tiles); } function createBlock(size, color) { var name = size + '_' + color; if (textureRegistry[name]) { return textureRegistry[name]; } var bmd = game.add.bitmapData(size, size); bmd.ctx.fillStyle = color; bmd.ctx.fillRect(0, 0, size, size); textureRegistry[name] = bmd; return bmd; } 
 <script src="https://github.com/photonstorm/phaser/releases/download/v2.6.2/phaser.min.js"></script> 

在Chrome上看起來似乎更糟糕。 重要的是要注意,只有在使用4x4或更多的磁貼時才會出現問題。

由於當前版本的限制, Phaser Arcade Physics不能很好地處理多體接觸

或者考慮使用P2物理代替和/或參見下面的討論。


暫無
暫無

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

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