2015-03-18 109 views
2

假設我的遊戲有實體,並且讓我們說所有這些實體都有一個由多個形狀組成的碰撞撞擊盒。我們還假設使用骨架動畫,每個碰撞形狀對應一個骨骼。 我具有一個數據容器,渲染器和控制器爲每個實體類型實現基本MVC模式,FE:MVC遊戲模式:動畫?

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

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

我怎麼能現在實際執行的動畫,如果我想hitboxes翻譯取決於修改動畫和它的進步?

如果我只有一個動畫,我會把整個東西放在渲染器中,但是現在呢?我怎樣才能將MVC應用於這個問題?

回答

2

您的動畫只是您模型的可視化效果圖。你可以讓你的實體進入一個「跳躍」狀態,它將在模型中操縱它的hitbox的y變量。當您渲染模型時,如果您的實體處於跳轉狀態,則顯示其跳轉動畫或圖像。

您不想基於動畫操作您的點擊框,而是根據點擊框操縱您的動畫。

+0

感謝您的回答!這似乎合乎邏輯。這是否意味着,骨骼的動畫基本上是邏輯,而渲染部分實際上只是渲染「靜態」紋理,取決於點擊框/骨骼的位置?我猜是這樣? – Fly 2015-03-19 18:05:18