【发布时间】:2012-12-25 22:54:58
【问题描述】:
我正在构建一个简单的通用引擎,以便我真正开始制作游戏,并且我正在尝试以某种方式组织和体面地制作我的引擎,这意味着我不希望它成为我扔掉的东西一旦我完成了我的计划,就到一边。
我添加了要显示的对象,drawObjects,这些对象可以移动,也可以不移动,并且有动画,或者没有动画。
如果他们确实有动画,我想初始化一个 animationSet,而这个 animationSet 里面会有 xxx animationComp。由于我试图保持整洁并且一直致力于对内存和 cpu 使用的“优化”(例如共享已加载的图像指针,以及我想到的任何东西),我不想在数组中要求可能未使用的内存.
所以我最初有animationSetS* animationSet = NULL;,计划在之后执行animationSet = animationSetS[spacesINEED];,仅在需要我添加动画的对象上,即那些不是NULL 的动画对象,因此不使用内存(对吗? )。
然后就出现了这个问题! (标题)
struct animationComp {
SDL_Rect* clip;
int clipsize;
};
struct animationSetS {
animationComp* animation;
int currentFrame;
int currentAnimation;
int animationNumber;
};
struct drawObject { // Um objecto.
char* name;
SDL_Surface* surface;
bool draw = true;
float xPos;
float yPos;
bool willMove = false; // 0 - Won't move, 10 - Moves alot, TO IMPLEMENT
bool isSprite = false;
animationSetS* animationSet;
};
我的问题涉及了很多,对此我深表歉意。对于此处的任何澄清回复,我会在接下来的 10 分钟内回复……也许 1 小时?或者更多。 谢谢!
【问题讨论】:
-
您的标题问题和示例不匹配。
animationSet是一个指针,而不是一个数组。 -
您应该更喜欢使用 RAII 成语 (en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization)
-
它确实提出了一些非常好的观点,必须阅读它,谢谢。
标签: c++ struct null initialization declare