1

我在 D 中创建了一个简单的小程序,其中包含对 SFML 的 D 绑定。我目前正在阅读有关自定义转换和自定义形状的信息。

现在我创建了一个类

class Animal : Drawable, Transformable
{
    mixin NormalTransformable;

    Shape body;
    string name;

    this(Shape sh, string name) {
        this.body = sh;
        this.name = name;
    }

    override void draw(RenderTarget target, RenderStates state = RenderStates.Default) {
        body.position = this.position;
        target.draw(body);
    }
}

这是 D 代码,但我认为除 之外的大部分内容mixin在 C++ 中应该完全相同。

现在我的问题主要是关于方法body.position = this.position;中的这一行draw

是否需要手动更新形状的位置?这似乎有点错误,但我没有找到任何资源来告诉我如何自动化这个过程。这样做draw对我来说也有点像致命的罪过。

所以基本上我的问题是:

如何根据可转换接口中的方法发生的事情来绘制自己的可绘制对象。

或者更简单:

如何自动同步对象和形状的位置、比例、旋转等?

4

0 回答 0