我在 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
对我来说也有点像致命的罪过。
所以基本上我的问题是:
如何根据可转换接口中的方法发生的事情来绘制自己的可绘制对象。
或者更简单:
如何自动同步对象和形状的位置、比例、旋转等?