phaser-framework - Sprite 后面生成的粒子

标签 phaser-framework

我刚刚开始使用 Phaser。

我在屏幕中间有一个简单的 Sprite ,每当我单击该 Sprite 时,我就会在单击的 x,y 坐标处发射一个粒子。

我的问题是粒子是在 Sprite 后面生成的。我尝试将 Sprite 上的 z 设置为 1,将发射器设置为 1000,但没有成功。

我错过了什么?

var emitter = game.add.emitter(game.world.centerX, game.world.centeryY);
emitter.makeParticles('phaser');

var sprite = game.add.sprite(game.world.centerX, game.world.centerY, 'phaser');
sprite.scale.setTo(2, 2);

sprite.inputEnabled = true;
sprite.events.onInputDown.add(function(sender, pointer){
    emitter.emitX = pointer.x;
    emitter.emitY = pointer.y;
    emitter.emitParticle();
}, this);

http://phaser.io/sandbox/cxBVeHrx

编辑

我的实际代码是基于 Phaser-ES6-Boilerplate 。尽管 BdRs 答案解决了沙箱代码中的问题,但我无法在实际代码中使用它。

我已经上传了 the code和一个running example 。希望有人能告诉我哪里搞砸了......

最佳答案

单独的 Phaser 项目没有 z 顺序,而是仅取决于您创建并将其添加到游戏的顺序。每个新的 Sprite 或发射器或组等将显示在所有先前添加的项目之上。

因此,只需将代码更改为类似的内容就可以了。

// first the sprite
var sprite = game.add.sprite(game.world.centerX, game.world.centerY, 'phaser');
sprite.scale.setTo(2, 2);

// then the particles in front of sprite
var emitter = game.add.emitter(game.world.centerX, game.world.centeryY);
emitter.makeParticles('phaser');

// then maybe text in front of particles and sprite
var mytest = game.add.bitmapText(10, 20, 'myfont', 'Level 1', 16);
// etc.

顺便说一句, Sprite 确实有一个 .z 值,但仅当它是 Phaser.Group 的一部分时才使用,然后它将用作显示 z 顺序,但仅在该组 Sprite 中。

关于phaser-framework - Sprite 后面生成的粒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32489272/

相关文章:

javascript - Phaser IO Update 在回调时动态创建文本

javascript - 暂停移相器动画

javascript - Phaser 无法将矩形添加到组中

html - Phaser.js 中的音频循环

javascript - 在 Phaser 中以相等尺寸制作 Sprite 表动画

phaser-framework - 如何将剪辑矩形应用于组或类似的东西?

javascript - Phaser 中的游戏 - AngularJS 中的 JavaScript 和事件

javascript - 无法在基于 JavaScript 的游戏中初始化全局变量

javascript - 使用 Capacitor 为 iOS 构建时,Phaser 3 应用程序没有声音

javascript - 如何在 Phaser 3 中检测图形和 Sprite 之间的碰撞?