gpt4 book ai didi

c++ - 我正在尝试返回 SDL Mix_Music 数据类型,但我遇到了问题

转载 作者:行者123 更新时间:2023-11-28 08:32:51 25 4
gpt4 key购买 nike

我知道我可以将所有 Mix_Musics 公开,而不用担心这个问题,但我仍然想了解如何去做。

   //header.h

class Music
{
private:

Mix_Music * BGMusic, * fall, * reset, * teleport, * win, * singleCubeWin;

public:

Music();

bool loadMusic();
void clean_up();

Mix_Music * getSound( Mix_Music * m ) { return m; }
};


//program.cpp

Music Sound;

int main( int argc, char* args[] )
{
...

Mix_PlayMusic( Sound.getSound( "BGMusic" ), -1 );

...
}

最佳答案

根据您上面的代码,我不能完全确定您要做什么。函数“getSound”将 Mix_Music 对象作为参数并返回相同的对象。现在,根据一些推论,我假设您正在尝试通过字符串请求 BGMusic 对象。有几种方法可以做到这一点,通过每个 Mix_Music 对象的 ID,按 ID 请求。:

... // Somewhere above:

enum MixMusicID {
BGMUSIC,
FALL,
RESET,
TELEPORT,
WIN,
SINGLECUBEWIN
};

... // In the class:

Mix_Music * getMusic ( MixMusicID id )
{
switch (id)
{
case BGMUSIC:
return BGMusic;
...
default:
return NULL;
}
}

... // In main:
Mix_PlayMusic( Sound.getSound( BGMUSIC ), -1 );

您可以对每个对象的字符串标识符进行类似的操作。真正归结为变量名称和字符串标识符之间没有内置关系。因此,您可以通过枚举(如上)或字符串标识符来实现这种关系。

希望这对您有所帮助,再次不确定到底是什么问题。

关于c++ - 我正在尝试返回 SDL Mix_Music 数据类型,但我遇到了问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1107784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com