diff options
Diffstat (limited to 'Classes/GameMode.m')
-rw-r--r-- | Classes/GameMode.m | 27 |
1 files changed, 18 insertions, 9 deletions
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 @@ | |||
12 | 12 | ||
13 | @implementation GameMode | 13 | @implementation GameMode |
14 | 14 | ||
15 | @synthesize cart, score, lives; | 15 | @synthesize cart, score, lives, isPaused; |
16 | 16 | ||
17 | + (CCScene*)scene | 17 | + (CCScene*)scene |
18 | { | 18 | { |
@@ -60,6 +60,8 @@ | |||
60 | [pauseMenu setPosition:ccp(480-8-16, 320-8-16)]; | 60 | [pauseMenu setPosition:ccp(480-8-16, 320-8-16)]; |
61 | [self addChild:pauseMenu]; | 61 | [self addChild:pauseMenu]; |
62 | } | 62 | } |
63 | |||
64 | isPaused = NO; | ||
63 | } | 65 | } |
64 | 66 | ||
65 | return self; | 67 | return self; |
@@ -98,8 +100,10 @@ | |||
98 | 100 | ||
99 | - (void)pause | 101 | - (void)pause |
100 | { | 102 | { |
101 | if ([self canPause]) | 103 | if (([self canPause]) && (!isPaused)) |
102 | { | 104 | { |
105 | isPaused = YES; | ||
106 | |||
103 | [self pauseSchedulerAndActions]; | 107 | [self pauseSchedulerAndActions]; |
104 | 108 | ||
105 | shadedLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 127)]; | 109 | shadedLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 127)]; |
@@ -126,13 +130,18 @@ | |||
126 | 130 | ||
127 | - (void)unpause | 131 | - (void)unpause |
128 | { | 132 | { |
129 | [[[CCDirector sharedDirector] runningScene] removeChild:shadedLayer cleanup:YES]; | 133 | if (isPaused) |
130 | [[[CCDirector sharedDirector] runningScene] removeChild:pauseLayer cleanup:YES]; | 134 | { |
131 | 135 | [[[CCDirector sharedDirector] runningScene] removeChild:shadedLayer cleanup:YES]; | |
132 | shadedLayer = nil; | 136 | [[[CCDirector sharedDirector] runningScene] removeChild:pauseLayer cleanup:YES]; |
133 | pauseLayer = nil; | 137 | |
134 | 138 | shadedLayer = nil; | |
135 | [self resumeSchedulerAndActions]; | 139 | pauseLayer = nil; |
140 | |||
141 | [self resumeSchedulerAndActions]; | ||
142 | |||
143 | isPaused = NO; | ||
144 | } | ||
136 | } | 145 | } |
137 | 146 | ||
138 | - (void)mainmenu | 147 | - (void)mainmenu |