我正在使用 EnTT(ECS 框架)用 C++ 编写游戏
我的游戏采用简单的概念设计,例如控制这两个的 Logic
UI
和 Game
。
所以我有这样的结构
struct Game {
// The logic
Logic logic;
// Ui
Ui ui;
}
例如,我使用委托将事件从一个概念触发到另一个概念。
struct Logic {
void doSomeCalculations(){
...
elementSpawned(someElement);
...
}
}
在游戏部分我实现了这个
struct Game {
...
void onElementSpawned(someElement){
}
}
现在假设 spawning 元素做了一些动画。
所以我需要停止逻辑一段时间做动画,然后继续,因为在 UI 动画时,逻辑可能会在计算上走得太远。
所以我需要实现这样的东西
void onElementSpawned(someElement) {
logic.wait();
ui.doAnimation(someElement);
logic.resume();
}
我怎样才能做到这一点?