1

我正在使用 c++ 开发游戏,但我不知道解决我的问题的更好方法是什么。我有一个包含gameObject对象的数组,每个对象都有一个包含动画帧的数组,我循环播放这些动画帧以显示游戏中的动画。动画是基于时间的,我必须告诉对象自显示最后一帧以来已经过去了多少时间(deltaTime)来计算我将在此迭代中显示的帧。一切都还好,直到这里。可以deltaTime使用 setter 方法将对象提供给对象吗?或者如果我在每个对象中都有一个指向全局变量的指针会更好?还是在性能和​​组织方面有另一种更好的方法?请记住,将有数百个对象。感谢您的时间 :)

4

1 回答 1

1

一般来说,避免使用全局变量。只需遍历对象,传递deltaTime给每个对象:

for (auto &gameObject : gameObjects)
{
    gameObject.Update(deltaTime);
}

不建议将时间存储在每个对象中,因为您认为“将来”可能需要它的任何事情,您都应该在Update.

于 2012-11-14T21:41:10.730 回答