Почему этот ярлык не отображается в HaxePunk?

Я начинаю изучать HaxePunk, и я прошел основные уроки на их сайте. Так что теперь я пытался выяснить, как добавить на экран какую-нибудь метку. Я заметил, что то, что кажется их единственным готовым классом с именем "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));
    }

Disclaimer.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 о добавлении нового блока, я вижу, что блок добавлен:

Block.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? Благодарю.

2 ответа

Этот код, кажется, работает для меня

Я использую openfl версии 1.2.1 и haxepunk 2.4.5 с новым проектом, созданным с haxelib run haxepunk new test

Я пробовал в html5, flash и neko, и он работал во всех из них.

Попробуйте выяснить, связана ли проблема с версиями openfl/haxepunk, возможно, это уже исправленная ошибка

Я полагаю, вы также импортировали класс в GameScene.hx? Добавляя:

import entities.Disclaimer;

выше вашего GameScene определение?

Другие вопросы по тегам