我应该使用什么系统来存储资源(图像,声音效果等)?
一个例子是将它们存储在结构类型系统中:
struct _Resource {
struct _Image {
SDL_Surface *MenuButton;
} Image;
struct _SoundEffect {
Mix_Chunk *MenuButtonSound;
} SoundEffect;
} Resource;
另一个例子是将它们存储在一个数组中:
SDL_Surface *Image[5];
Mix_Chunk *SoundEffect[5];
你有什么想法?
答案 0 :(得分:2)
有数百种方法可以做到这一点。询问什么是最好的方式并不是真正有建设性的。您可能想看看其他人是如何做到的(如果不重新使用这些组件/库以避免重新发明轮子):
答案 1 :(得分:0)
这个问题非常笼统,所以这里是一般答案:
首先,您应该知道struct
数组是正交概念。你不需要在它们之间做出选择,你可以同时选择它们。
现在通常,当您决定拥有struct
时,因为数据在某种程度上是相关的。例如,如果您拥有可点击且具有位置的资源,则可以使用以下结构
typedef struct Resource
{
int x, y;
SDL_Surface MenuBotton;
void (*click_callback)(struct Resource *);
} Resource;
有道理。但是,如果你有两个不相关的概念,比如图像和声音,将它们放在一个结构中是绝对没有意义的(除非特殊情况,例如将指针发送到线程!)
所以你需要做的是,划分彼此相关的不同概念和群组信息。如果您有很多实例,请从相关信息中创建结构并创建它们的数组。
最后,您可能希望有一个包含某种经理所处理的所有内容的大结构,但这当然取决于您的应用程序。