0

C でリソース (画像、効果音など) を保存するには、どのシステムを使用すればよいですか?

1 つの例は、それらを構造体型システムに格納することです。

struct _Resource {
    struct _Image {
        SDL_Surface *MenuButton;
    } Image;
    struct _SoundEffect {
        Mix_Chunk *MenuButtonSound;
    } SoundEffect;
} Resource;

別の例は、それらを配列に格納することです。

SDL_Surface *Image[5];
Mix_Chunk *SoundEffect[5];

あなたの考えは何ですか?

4

2 に答える 2

2

それを行う方法は何百万もあります。最善の方法は何かを尋ねることは、実際には建設的ではありません。他の人がどのようにそれを行っているかを確認したい場合があります (車輪の再発明を避けるためにこれらのコンポーネント/ライブラリを再利用しない場合):

于 2012-07-22T16:30:06.483 に答える
0

この質問は非常に一般的であるため、一般的な回答は次のとおりです。

structまず、配列は直交概念であることを知っておく必要があります。どちらかを選択する必要はありません。両方を使用できます。

通常、 を使用することにしたstructのは、データが何らかの形で関連しているからです。たとえば、クリック可能で位置を持つリソースがある場合、次のような構造体

typedef struct Resource
{
    int x, y;
    SDL_Surface MenuBotton;
    void (*click_callback)(struct Resource *);
} Resource;

理にかなっています。ただし、イメージとサウンドなどの 2 つの無関係な概念がある場合、それらを 1 つの構造体にまとめることはまったく意味がありません (ポインタをスレッドに送信するなどの特別な場合を除きます!)。

したがって、必要なことは、さまざまな概念を分割し、互いに関連する情報をグループ化することです。関連する情報から構造体を作成し、それらのインスタンスが多数ある場合はそれらの配列を作成します。

最終的には、何らかのマネージャーによって処理されたすべてを含む 1 つの大きな構造体が必要になる場合がありますが、それは確かにアプリケーションによって異なります。

于 2012-07-22T16:32:17.107 に答える