0

私は 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 の何が問題になっていますか? ありがとう。

4

2 に答える 2

0

GameScene.hx にもクラスをインポートしたと思いますか? 追加することにより:

import entities.Disclaimer;

あなたのGameScene定義を超えていますか?

于 2014-03-04T09:39:43.160 に答える
0

そのコードは私のために働くようです

で作成された新しいプロジェクトでopenflバージョン1.2.1とhaxepunk 2.4.5を使用していますhaxelib run haxepunk new test

html5、flash、neko で試してみたところ、すべてで動作しました。

問題が openfl/haxepunk のバージョンに関連しているかどうかを確認してください。既に修正されているバグである可能性があります。

于 2014-01-25T23:49:56.667 に答える