Phaser:精灵重叠时显示文本
Phaser: show text when sprites overlap
我正在尝试找出一种方法,当我的两个精灵重叠时,将文本添加到视口的左上角。其中一个是物品,另一个是我的角色。当我点击一个键时,我已经可以检测到重叠甚至 "pick" 项目(杀死精灵)。但是我希望有一条文字说 "Click "E" to pick the sword!"在碰撞功能处于活动状态时出现,当我通过捡起它来杀死精灵时,文本会消失。
我尝试将文本包含在碰撞函数本身中,但我想这样我会多次渲染文本(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;
知道怎么做吗?
在您的 'create' 函数中:
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!");
您不必每次都创建新文本,您可以将一个文本用于不同的目的。
我正在尝试找出一种方法,当我的两个精灵重叠时,将文本添加到视口的左上角。其中一个是物品,另一个是我的角色。当我点击一个键时,我已经可以检测到重叠甚至 "pick" 项目(杀死精灵)。但是我希望有一条文字说 "Click "E" to pick the sword!"在碰撞功能处于活动状态时出现,当我通过捡起它来杀死精灵时,文本会消失。
我尝试将文本包含在碰撞函数本身中,但我想这样我会多次渲染文本(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;
知道怎么做吗?
在您的 'create' 函数中:
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!");
您不必每次都创建新文本,您可以将一个文本用于不同的目的。