Я пытаюсь соединить кнопки SFX и Audio в моем представлении настроек с кнопками SFX и Audio в моем представлении игры, но у меня возникли некоторые проблемы.
проблемы
* Настройки кнопок в представлении настроек должны быть включены по умолчанию, когда пользователь впервые решает играть в игру, но будет сохранен, как только он решит изменить их на то, что он / она выберет для их установки. чтобы ... так что в следующий раз, когда игрок вернется к настройкам, независимо от того, будет ли он после окончания игры вручную игроком, завершится или войдет в фоновый режим из-за телефонного звонка и т. д., они все равно должны быть такими, как только игрок выбрал их на.
* настройки кнопок в представлении игры должны совпадать с однократными в представлении настроек и должны быть сохранены, если игрок решит их изменить. Поэтому в следующий раз, когда игрок войдет в окно настроек, он должен быть таким, каким он выбрал в игре.
Мне пока не удалось заставить это работать
У меня есть одноэлементный класс, который обрабатывает аудио игры, а затем у меня есть файл реализации, который обрабатывает как настройки, так и саму игру.
вот как я создал настройки звука для просмотра настроек и просмотра игры.
первая часть - код настроек
-(IBAction)options{
saveBackAudioON = [[NSUserDefaults standardUserDefaults] boolForKey:kSaveBackAudioON];
saveSFXAudioON = [[NSUserDefaults standardUserDefaults] boolForKey:kSaveSFXAudioON];
NSLog(@"Options");
OptionsHeadtitle.hidden = NO;
Start.hidden = YES;
option.hidden = YES;
howtoplay.hidden = YES;
filter.hidden = NO;
SFXimage.hidden = NO;
Musicimage.hidden = NO;
credits.hidden = NO;
back.hidden = NO;
newgame.hidden = YES;
continuegame.hidden = YES;
[self SFXswap];
[self MUSICswap];
}
-(IBAction)SFXswap{
BOOL buttonstate = [SingletonSoundManager isSFXOn];
[SingletonSoundManager setSFXOn:!buttonstate];
if(buttonstate){
NSLog(@"SFX Stops");
sfx1.hidden = buttonstate;
sfx2.hidden = !buttonstate;
}
else if(!buttonstate){
NSLog(@"SFX Starts");
sfx1.hidden = buttonstate;
sfx2.hidden = !buttonstate;
}
}
-(IBAction)MUSICswap{
BOOL buttonstate = [SingletonSoundManager isMusicOn];
[SingletonSoundManager setMusicOn:!buttonstate];
if(buttonstate){
NSLog(@"Music Stops");
music1.hidden = buttonstate;
music2.hidden = !buttonstate;
}
else if(!buttonstate){
NSLog(@"Music Starts");
music1.hidden = buttonstate;
music2.hidden =!buttonstate;
}
}
и эта часть - настройки внутри игрового вида
-(void)begingame{
Pause.enabled = YES;
musicbutton1.enabled = YES;
musicbutton2.enabled = YES;
sfxbutton1.enabled = YES;
sfxbutton2.enabled = YES;
Clock.hidden = NO;
Pause.hidden = NO;
totalSeconds = 300; //for 5 minutes
//Countdown for ongoing game
countdowntimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(clockcountdown) userInfo:nil repeats:YES];
//If music is on the play background music
BOOL BackgroundMusicbuttonstate = [SingletonSoundManager isMusicOn];
[SingletonSoundManager setMusicOn:!BackgroundMusicbuttonstate];
//show which state the audio is on, if it´s enabled or disabled from the beginning
if(!BackgroundMusicbuttonstate){
musicbutton1.hidden = BackgroundMusicbuttonstate;
musicbutton2.hidden = !BackgroundMusicbuttonstate;
}
//Play background music if the music is enabled from the beginning
//if(musicbutton1.hidden == NO && musicbutton2.hidden == YES){
if(musicbutton1.hidden == NO){
[sharedSoundManager playMusicWithKey:@"Background" timesToRepeat:-1];
newGame = YES;
}
//else if(musicbutton1.hidden == YES && music2.hidden == NO){
else{
[sharedSoundManager pausePlayingMusic];
}
BOOL SFXbuttonstate = [SingletonSoundManager isSFXOn];
[SingletonSoundManager setSFXOn:!SFXbuttonstate];
//show which state the SFX is on, if it´s enabled or disabled from the beginning
if(!SFXbuttonstate){
sfx1.hidden = SFXbuttonstate;
sfx2.hidden = !SFXbuttonstate;
}
//Play SFX if SFX is enabled from the beginning
if(SFXbuttonstate){
newGame = YES;
}
if(sfxbutton2.hidden == NO){
[sharedSoundManager stopPlayingSFX];
}
newGame = NO;
isbrickdissapearing = NO;
rubin1.center = CGPointMake(rubin2.center.x, rubin2.center.y);
[self.view addSubview:rubin1];
}
-(IBAction)SFX{
BOOL buttonstate = [SingletonSoundManager isSFXOn];
[SingletonSoundManager setSFXOn:!buttonstate];
if(buttonstate){
NSLog(@"SFX Stops");
sfxbutton1.hidden = buttonstate;
sfxbutton2.hidden = !buttonstate;
}
else if(!buttonstate){
NSLog(@"SFX Starts");
sfxbutton1.hidden = buttonstate;
sfxbutton2.hidden = !buttonstate;
}
}
-(IBAction)MUSIC{
BOOL buttonstate = [SingletonSoundManager isMusicOn];
[SingletonSoundManager setMusicOn:!buttonstate];
if(buttonstate){
NSLog(@"Music Stops");
musicbutton1.hidden = buttonstate;
musicbutton2.hidden = !buttonstate;
[sharedSoundManager pausePlayingMusic];
}
else if(!buttonstate){
NSLog(@"Music Starts");
musicbutton1.hidden = buttonstate;
musicbutton2.hidden = !buttonstate;
[sharedSoundManager resumePlayingMusic];
}
}
спасибо заранее!