私は HaxePunk を学び始めており、彼らの Web サイトで基本的なチュートリアルを確認しました。そこで、何らかのラベルを画面に追加する方法を見つけようとしていました。「Label」という名前の唯一のすぐに使えるクラスのように見えるものは、単なるデバッグ ツールのように見え、実際には本番環境で必要なものではないことに気付きました。そのため、FlashPunk でのラベルの作成に関する次のリンクを検索して見つけました。 http://flashgamedojo.com/wiki/index.php?title=Text_%28FlashPunk%29
基本的には、非常に基本的な Text オブジェクトをエンティティのグラフィック プロパティに割り当てるだけです。だから、ここに私のコードがあります。これは、チュートリアルコードから切り離されています:
GameScene.hx:
class GameScene extends Scene
{
public function new()
{
super();
}
public override function begin()
{
//add(new Block(30, 50));
//add(new Player(100, 100));
//add(new Ship(200, 200));
//spawn();
add(new Disclaimer(200, 200));
}
免責事項.hx:
package graphics;
import com.haxepunk.Entity;
import com.haxepunk.graphics.Text;
class Disclaimer extends Entity
{
public function new(x:Float, y:Float)
{
super(x, y);
var lbl = new Text("This is a disclaimer.");
//lbl.color = 0xFFFFFF;
graphic = lbl;
}
}
画面に何も追加されていません。ただし、新しいブロックの追加に関する GameScene.hx の行のコメントを外そうとすると、ブロックが追加されていることがわかります。
ブロック.hx:
package entities;
import com.haxepunk.Entity;
import com.haxepunk.graphics.Image;
import com.haxepunk.utils.Input;
import com.haxepunk.utils.Key;
class Block extends Entity
{
public function new(x:Int, y:Int)
{
super(x, y);
graphic = new Image("graphics/block.png");
}
public override function update()
{
if (Input.check(Key.LEFT))
{
moveBy(-2, 0);
}
if (Input.check(Key.RIGHT))
{
moveBy(2, 0);
}
super.update();
}
}
Disclaimer.hx の何が問題になっていますか? ありがとう。