summary refs log tree commit diff stats
path: root/Classes/ClassicGameMode.m
diff options
context:
space:
mode:
Diffstat (limited to 'Classes/ClassicGameMode.m')
-rwxr-xr-xClasses/ClassicGameMode.m71
1 files changed, 56 insertions, 15 deletions
diff --git a/Classes/ClassicGameMode.m b/Classes/ClassicGameMode.m index 46ad337..306c1d1 100755 --- a/Classes/ClassicGameMode.m +++ b/Classes/ClassicGameMode.m
@@ -8,10 +8,6 @@
8 8
9#import "ClassicGameMode.h" 9#import "ClassicGameMode.h"
10#import "FallingObject.h" 10#import "FallingObject.h"
11#import "Cherry.h"
12#import "Bottle.h"
13#import "OneUp.h"
14#import "Rock.h"
15#import "GameOverScene.h" 11#import "GameOverScene.h"
16#import "SimpleAudioEngine.h" 12#import "SimpleAudioEngine.h"
17#import "CCNotifications.h" 13#import "CCNotifications.h"
@@ -19,6 +15,13 @@
19 15
20@implementation ClassicGameMode 16@implementation ClassicGameMode
21 17
18typedef enum {
19 kCherryObject = 0,
20 kEnergyDrinkObject,
21 kOneUpObject,
22 kRockObject
23} FallingObjects;
24
22- (void)tick:(ccTime)dt 25- (void)tick:(ccTime)dt
23{ 26{
24 int lastScore = score; 27 int lastScore = score;
@@ -83,6 +86,7 @@
83{ 86{
84 FallingObject* object; 87 FallingObject* object;
85 int oneuppercent = 98 - (lives == 1 ? 1 : 0); 88 int oneuppercent = 98 - (lives == 1 ? 1 : 0);
89 int recipeIdentifier;
86 90
87 if (score < 1000) 91 if (score < 1000)
88 { 92 {
@@ -90,31 +94,33 @@
90 94
91 if (randomval < 65) 95 if (randomval < 65)
92 { 96 {
93 object = [[Cherry alloc] init]; 97 recipeIdentifier = kCherryObject;
94 } else if (randomval < oneuppercent) 98 } else if (randomval < oneuppercent)
95 { 99 {
96 object = [[Bottle alloc] init]; 100 recipeIdentifier = kEnergyDrinkObject;
97 } else { 101 } else {
98 object = [[OneUp alloc] init]; 102 recipeIdentifier = kOneUpObject;
99 } 103 }
100 } else { 104 } else {
101 int randomval = arc4random()%100; 105 int randomval = arc4random()%100;
102 106
103 if (randomval < 40) 107 if (randomval < 40)
104 { 108 {
105 object = [[Cherry alloc] init]; 109 recipeIdentifier = kCherryObject;
106 } else if (randomval < 70) 110 } else if (randomval < 70)
107 { 111 {
108 object = [[Rock alloc] init]; 112 recipeIdentifier = kRockObject;
109 } else if (randomval < oneuppercent) 113 } else if (randomval < oneuppercent)
110 { 114 {
111 object = [[Bottle alloc] init]; 115 recipeIdentifier = kEnergyDrinkObject;
112 } else { 116 } else {
113 object = [[OneUp alloc] init]; 117 recipeIdentifier = kOneUpObject;
114 } 118 }
115 } 119 }
116 120
117 int objectX = arc4random()%448+16; 121 int objectX = arc4random()%448+16;
122 object = [[objectFactory buildFallingObjectWithRecipeIdentifier:recipeIdentifier] retain];
123 object.delegate = self;
118 object.sprite.position = ccp(objectX, 360); 124 object.sprite.position = ccp(objectX, 360);
119 object.sprite.scale = 1; 125 object.sprite.scale = 1;
120 [self addChild:object.sprite]; 126 [self addChild:object.sprite];
@@ -126,8 +132,8 @@
126 { 132 {
127 if (arc4random() % 100 > 80) 133 if (arc4random() % 100 > 80)
128 { 134 {
129 object = [[Rock alloc] init]; 135 object = [[objectFactory buildFallingObjectWithRecipeIdentifier:kRockObject] retain];
130 136 object.delegate = self;
131 objectX = arc4random()%448+16; 137 objectX = arc4random()%448+16;
132 object.sprite.position = ccp(objectX, 360); 138 object.sprite.position = ccp(objectX, 360);
133 object.sprite.scale = 1; 139 object.sprite.scale = 1;
@@ -142,8 +148,8 @@
142 { 148 {
143 if (arc4random() % 100 > 80) 149 if (arc4random() % 100 > 80)
144 { 150 {
145 object = [[Rock alloc] init]; 151 object = [[objectFactory buildFallingObjectWithRecipeIdentifier:kRockObject] retain];
146 152 object.delegate = self;
147 objectX = arc4random()%448+16; 153 objectX = arc4random()%448+16;
148 object.sprite.position = ccp(objectX, 360); 154 object.sprite.position = ccp(objectX, 360);
149 object.sprite.scale = 1; 155 object.sprite.scale = 1;
@@ -166,6 +172,11 @@
166 [self addChild:backgroundImage z:-1]; 172 [self addChild:backgroundImage z:-1];
167 173
168 addSpeed = 2.5f; 174 addSpeed = 2.5f;
175
176 [objectFactory createRecipeWithIdentifier:kCherryObject spriteFilename:@"cherry.png" weight:5];
177 [objectFactory createRecipeWithIdentifier:kEnergyDrinkObject spriteFilename:@"bottle.png" weight:6];
178 [objectFactory createRecipeWithIdentifier:kOneUpObject spriteFilename:@"oneup.png" weight:10];
179 [objectFactory createRecipeWithIdentifier:kRockObject spriteFilename:@"rock.png" weight:7];
169 } 180 }
170 181
171 return self; 182 return self;
@@ -178,4 +189,34 @@
178 [self schedule:@selector(randomlyAddObject:) interval:addSpeed]; 189 [self schedule:@selector(randomlyAddObject:) interval:addSpeed];
179} 190}
180 191
192- (void)didCatchItem:(FallingObject *)item
193{
194 if (item.objectType == kCherryObject)
195 {
196 [[SimpleAudioEngine sharedEngine] playEffect:[[NSBundle mainBundle] pathForResource:@"Item1" ofType:@"wav"]];
197 self.score += 10;
198 } else if (item.objectType == kEnergyDrinkObject)
199 {
200 [[SimpleAudioEngine sharedEngine] playEffect:[[NSBundle mainBundle] pathForResource:@"Item1" ofType:@"wav"]];
201 self.score += 25;
202 } else if (item.objectType == kOneUpObject)
203 {
204 [[SimpleAudioEngine sharedEngine] playEffect:[[NSBundle mainBundle] pathForResource:@"1up" ofType:@"wav"]];
205 self.lives++;
206 } else if (item.objectType == kRockObject)
207 {
208 [[SimpleAudioEngine sharedEngine] playEffect:[[NSBundle mainBundle] pathForResource:@"Damage1" ofType:@"wav"]];
209 self.lives--;
210 }
211}
212
213- (void)didMissItem:(FallingObject *)item
214{
215 if ((item.objectType == kCherryObject) || (item.objectType == kEnergyDrinkObject))
216 {
217 [[SimpleAudioEngine sharedEngine] playEffect:[[NSBundle mainBundle] pathForResource:@"Damage1" ofType:@"wav"]];
218 self.lives--;
219 }
220}
221
181@end 222@end