From b4c612674d28bf7b385bd9fe41b108df8d97b474 Mon Sep 17 00:00:00 2001 From: Starla Insigna Date: Tue, 23 Aug 2011 12:55:57 -0400 Subject: Added pause checks to GameMode Now GameMode actually checks if it's already paused before pausing. Fixes #210 --- Classes/GameMode.h | 3 +++ Classes/GameMode.m | 27 ++++++++++++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Classes/GameMode.h b/Classes/GameMode.h index 370550c..890106e 100644 --- a/Classes/GameMode.h +++ b/Classes/GameMode.h @@ -25,11 +25,14 @@ CCLabelBMFont* livesLabel; void (^delayedAction)(void); + + BOOL isPaused; } @property (readonly) Cart* cart; @property (nonatomic,assign) int score; @property (nonatomic,assign) int lives; +@property (readonly) BOOL isPaused; + (CCScene*)scene; - (void)tick:(ccTime)dt; - (BOOL)canPause; diff --git a/Classes/GameMode.m b/Classes/GameMode.m index 7afbf20..7b07f15 100644 --- a/Classes/GameMode.m +++ b/Classes/GameMode.m @@ -12,7 +12,7 @@ @implementation GameMode -@synthesize cart, score, lives; +@synthesize cart, score, lives, isPaused; + (CCScene*)scene { @@ -60,6 +60,8 @@ [pauseMenu setPosition:ccp(480-8-16, 320-8-16)]; [self addChild:pauseMenu]; } + + isPaused = NO; } return self; @@ -98,8 +100,10 @@ - (void)pause { - if ([self canPause]) + if (([self canPause]) && (!isPaused)) { + isPaused = YES; + [self pauseSchedulerAndActions]; shadedLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 127)]; @@ -126,13 +130,18 @@ - (void)unpause { - [[[CCDirector sharedDirector] runningScene] removeChild:shadedLayer cleanup:YES]; - [[[CCDirector sharedDirector] runningScene] removeChild:pauseLayer cleanup:YES]; - - shadedLayer = nil; - pauseLayer = nil; - - [self resumeSchedulerAndActions]; + if (isPaused) + { + [[[CCDirector sharedDirector] runningScene] removeChild:shadedLayer cleanup:YES]; + [[[CCDirector sharedDirector] runningScene] removeChild:pauseLayer cleanup:YES]; + + shadedLayer = nil; + pauseLayer = nil; + + [self resumeSchedulerAndActions]; + + isPaused = NO; + } } - (void)mainmenu -- cgit 1.4.1