0
スプライトの2つが重なったときに、ビューポートの左上隅にテキストを追加する方法を工夫しています。そのうちの1つはアイテムで、もう1つは私のキャラクターです。私はすでに重複を検出することができますし、キーをクリックすると項目を選択(スプライトを消去)します。しかし、私は "Click" E "のような何かを言っているテキストを欲しいと思っています!"コリジョン関数がアクティブな間に現れ、スプライトをピックしてそのスプライトを消去すると、テキストは消えてしまいます。Phaser:スプライトが重なったときのテキストの表示
私は、テキストを複数の時間(多くの場合、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;
どうすればよいですか?あなたの '作成' 機能で
これは良い単純な解決策のようです。しかし、今、私のキャラクターが他のスプライトに触れると、それはそこに詰まり、もはや動くことができません。 –
これは機能しています。あなたの解決策はうまく働いた –
これは素晴らしい方法です。私が追加する唯一のコメントは、衝突ハンドラ内に 'onDown.add'を持たないことです。で無名関数を追加すると、スプライトが重複している限り、実際には無名関数が追加されます。代わりに、 'create'関数に' onDown'シグナルを追加するか、またはオーバーラップコールバックにフラグを設定して、それが現在チェックできるかどうか、あるいはそれらの行に沿って何かを知らせるようにします。手短に言えば、ハンドラは何百回も呼び出されるので、何が入っているか注意してください:) – PhotonStorm