HaxePunk: при экспорте в C++ ничего не отображается

Так что я делаю игру с Haxe и Haxepunk. Хорошо. За исключением того, что когда я экспортирую в C++, ничего не рендерится! Я разместил это ранее на досках Haxepunk, так что больше информации можно найти здесь. Вот выдержка из темы Haxepunk;

Я все еще могу скомпилировать его просто отлично, но в игре ничего не воспроизводится, кроме цвета фона, который я определил. Консоль все еще работает и рендерит нормально, хотя. Консоль HaxePunk говорит мне Atlases using BitmapData will not be managed,

Я использую систему компонент-сущность Эша, и я не использую сущности Хэкс. Соответствующие объекты имеют Visible компонент, прикрепленный к ним, выглядит следующим образом;

package game.component;

import com.haxepunk.Graphic;
import com.haxepunk.graphics.Image;

class Visible {

    public var image(default, default) : Graphic;

    public function new() {
        this.image = Image.createRect(16, 16, 0xFF0000);
    }
}

И это связанная система рендеринга;

package game.system;

import ash.core.Engine;
import ash.core.Entity;
import ash.core.System;
import ash.tools.ListIteratingSystem;

import com.haxepunk.HXP;

import Constants;
import game.component.Positionable;
import game.component.Visible;

import game.node.RenderNode;

class RenderingSystem extends ListIteratingSystem<RenderNode> {

    public function new() {
        super(RenderNode, this.updateNode);
    }

    private function updateNode(node:RenderNode, time:Float) : Void {
        node.renderable.image.render(HXP.buffer, node.position.position, Constants.ORIGIN);
    }
}

Какие-нибудь советы?

1 ответ

Решение

Если вы используете буферный рендеринг в C++, вам нужно установить режим рендеринга внутри конструктора. Это потому, что конструктор Engine является единственным местом, где создается экранный буфер. К сожалению, документы API не дают четкого объяснения этому.

class Main extends Engine
{
    public function new()
    {
        super(0, 0, 60, false, RenderMode.BUFFER);
    }
}
Другие вопросы по тегам