游戏中的 MVC 模式:动画?

MVC Pattern in Games: Animation?

假设我的游戏有实体,假设所有这些实体都有一个由多个形状组成的碰撞碰撞箱。我们还假设使用骨骼动画并且每个碰撞形状对应一个骨骼。 我通过为每个实体类型设置一个数据容器、渲染器和控制器来实现基本的 MVC 模式,fE:

class MyEntity:public Entity{
    public: int x, y, state; vector<hitbox> hitboxArray;

class MyEntityRenderer:public Renderer{
    void render(){
        ...
    }
}
class MyEntityController:public Controller {
    update(){}
    inputstuff(){}
}

如果我希望根据动画及其进度修改碰撞框翻译,我现在如何才能真正实现动画?

如果我只有一个动画,我显然会把所有的东西都放在渲染器中,但现在呢?我如何应用 MVC 解决这个问题?

您的动画只是模型的视觉渲染。你可以让你的实体进入一个 "jumping" 状态,这将在模型中为它​​的 hitbox 操纵它的 y 变量。当您渲染模型时,如果您的实体处于跳跃状态,则显示其跳跃动画或图像。

您不想根据动画来操作您的碰撞箱,而是希望根据碰撞箱来操作您的动画。