zel*_*ing 0 c++ arrays opengl oop
我已将面向对象的类集成到我的OpenGL应用程序中.基类有一个被调用的函数Tick
,应该使用表示增量时间的参数调用每个tick(显而易见).这是它的样子(没有这个问题的无关紧要的东西).
头:
class Object
{
public:
virtual void Tick(float DeltaTime);
}
class Controller : public Object
{
public:
virtual void Tick(float DeltaTime);
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个名为的类Engine
包含主循环,初始化和处理(将其与窗口创建分开).
在那个课程中我需要跟踪游戏中的所有对象,所以我创建了一个数组:
Object* Objects = new Object[10]; // for now max 10 objects
然后调用tick函数,我通过数组迭代:
for (unsigned int c = 0; c < 10; c++)
Objects[c].Tick(delta);
Run Code Online (Sandbox Code Playgroud)
被delta
循环之前进行计算.
问题在于,如果我将数组中的一个对象分配给Controller
(例如),则调用的Tick函数始终是在Object
实际存储的类中而不在其中的那个.
我甚至尝试过类型转换(每个类都有一个字符串来识别它的类型),但没有用.
我很确定答案是显而易见的(就像我上一期的答案一样),但我找不到答案.
感谢您的时间.:)
归档时间: |
|
查看次数: |
1172 次 |
最近记录: |