我正在构建一个简单的通用引擎,用于制作游戏的真正开始,并且我试图以某种方式在制作引擎时进行组织化和体面的设计,这意味着我不希望它成为我投掷的东西一旦我做出我打算做的事情。不初始化指针并将其初始化为null会有什么区别?
我添加了要显示的对象,drawObject
s,这些可以移动,不移动,并有一个动画,或没有一个。
如果他们有一个动画,我想初始化一个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'是一个**指针**,不是数组。 –
对不起,我的坏! – GigaBass
你应该更喜欢使用RAII成语(http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization) –