精灵动画

精灵动画与纹理唯一的不同之处在于, 精灵纹理使用一张精灵图作为纹理资源, 并且需要被附加处理的逻辑,包括帧的尺寸, 每一帧播放的时长等。

接下来的代码展示如何渲染一个精灵动画

// 加载纹理资源
r->LoadTexture("texture",
    Path::GeneratePath(A_IMAGE, "Blue_witch/B_witch_charge.png").c_str()
);

// 创建一个实体
Entity one = w->CreateEntity();
// 绑定精灵动画组件
w->AtachComp<SpriteAnimComp>(one, SpriteAnimComp{
    &r->GetTexture("texture"),
    150, 150, 1, 8, 0.2
});
w->AtachComp<TransformComp>(one, TransformComp{
    glm::vec2(100, 100),
    glm::vec2(150, 150),
    0.0f
});
w->AtachComp<ColorComp>(one, ColorComp{
    glm::vec3(1.0f, 1.0f, 1.0f)
});
w->AtachComp<AABBComp>(one, AABBComp{
    150, 150
});