Phaser:sprite重叠时显示文本

时间:2016-09-05 18:41:13

标签: phaser-framework

当我的两个精灵重叠时,我正试图找到一种方法将文本添加到视口的左上角。其中一个是项目,另一个是我的角色。我已经可以检测到重叠甚至是选择"单击某个键时该项(杀死精灵)。但是,我想要一个类似于" Click" E"拿剑!"在碰撞功能处于活动状态时出现,当我通过拾取它来杀死精灵时,文本会消失。

我尝试在碰撞函数本身中包含文本,但我想这样我多次渲染文本(fps下降了很多),我只想创建一次并根据我的目的将其删除。我的代码:

function collisionHandler(dude,the_sword) {
pickObject.onDown.add(function () {
    the_sword.kill();
}, this);
}

game.physics.isoArcade.overlap(dude, the_sword, collisionHandler, null, this);

// message saying to pick // Where to put this?
var style = { font: "30px Arial", fill: "#ff0044"};
var pick_message = this.game.add.text(0,20,"Click 'E' to pick up the sword!",style);
pick_message.fixedToCamera = true;

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:1)

在“创建”功能中:

var style = { font: "30px Arial", fill: "#ff0044"};
var pick_message = this.game.add.text(0,20,"Click 'E' to pick up the sword!",style);
pick_message.fixedToCamera = true;
pick_message.visible = false;

然后:

function collisionHandler(dude,the_sword) {
pick_message.visible = true;
pickObject.onDown.add(function () {
    the_sword.kill();
    pick_message.visible = false;
}, this);
}

game.physics.isoArcade.overlap(dude, the_sword, collisionHandler, null, this);

这样的事情应该有用。如果您想执行其他操作,例如打开门,您可以使用:

pick_message.setText("Click 'Q' to open the door!");

您不必创建新文本,您可以将其用于不同目的。

相关问题