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

问题描述

我正在使用 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();
}

我怎样才能做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)