很抱歉这么快就犯了两次错误,但由于人们在他们的信息反应中非常友善,我认为再问一个问题也无妨。
同一个程序,我试图让它相当时髦,并有一个主屏幕,允许你点击一个按钮,这会导致一个有限的选项屏幕。这使您可以打开或关闭音乐。或者至少它应该这样做。
音乐运行代码在主文件(game.m)中,如下:
//Music
[Settings setMusicEnabled:YES];
music = [SPSound soundWithContentsOfFile:@"music.caf"];
channel = [[music createChannel] retain];
channel.loop = YES;
channel.volume = 0.25;
if([Settings musicEnabled]){
[channel play];
}
我为奇怪的格式道歉,但它是 Sparrow 框架。基本上,设置文件包含我尝试使用的类方法。如果方法导致“是”,则音乐已打开。如果为否,则音乐已关闭。
设置.m
static BOOL isMusicEnabled;
@implementation Settings
+ (BOOL)musicEnabled
{
return isMusicEnabled;
}
+ (void)setMusicEnabled:(BOOL)value
{
isMusicEnabled = value;
NSLog(@"SME? %i", isMusicEnabled);
}
@end
现在,选项文件正在工作,我测试了该部分。该程序正在读取 isMusicEnabled 正在获得一个新值,因此 musicEnabled 也正在被更改,因此应该进行更改并且应该关闭音乐。
然而,什么也没有发生。我曾尝试使用调试器,但我不太擅长它,而且我不了解我提供的很多信息。我确实了解问题是将消息从设置文件发送到主/游戏文件。
我会感谢任何可以启发我如何解决这个问题的人的帮助。