gpt4 book ai didi

javascript - Phaser - 街机碰撞物理

转载 作者:行者123 更新时间:2023-11-29 10:07:10 24 4
gpt4 key购买 nike

我正在使用 Phaser 框架开发一个简单的方 block 游戏,但不幸的是,我在使用 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 或更多图 block 时才会出现此问题。

最佳答案

Phaser Arcade Physics doesn't handle multi-body contact very well, due to limitations on current version

Alternatively consider using P2 physics instead and/or see discussions below.


关于javascript - Phaser - 街机碰撞物理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41152758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com