C++ 游戏逻辑 UI 与线程同步

时间:2021-04-28 04:06:02

标签: c++ multithreading animation sleep resume

我正在使用 EnTT(ECS 框架)用 C++ 编写游戏

我的游戏采用简单的概念设计,例如控制这两个的 Logic UIGame

所以我有这样的结构

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();
}

我怎样才能做到这一点?

0 个答案:

没有答案
相关问题