summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xCartographic.xcodeproj/project.pbxproj4
-rwxr-xr-xClasses/FallingObject.h3
-rwxr-xr-xClasses/FallingObject.m10
-rw-r--r--Classes/JumpGameMode.m37
-rw-r--r--Classes/PointMultiplier.m2
-rwxr-xr-xResources/Absorption2.wavbin0 -> 51044 bytes
6 files changed, 53 insertions, 3 deletions
diff --git a/Cartographic.xcodeproj/project.pbxproj b/Cartographic.xcodeproj/project.pbxproj index 1a41374..75343b3 100755 --- a/Cartographic.xcodeproj/project.pbxproj +++ b/Cartographic.xcodeproj/project.pbxproj
@@ -131,6 +131,7 @@
131 6CDBE80C14092DB00072F287 /* ledge.png in Resources */ = {isa = PBXBuildFile; fileRef = 6CDBE80B14092DB00072F287 /* ledge.png */; }; 131 6CDBE80C14092DB00072F287 /* ledge.png in Resources */ = {isa = PBXBuildFile; fileRef = 6CDBE80B14092DB00072F287 /* ledge.png */; };
132 6CF64C09141B9FA300F3B702 /* PointMultiplier.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CF64C08141B9FA300F3B702 /* PointMultiplier.m */; }; 132 6CF64C09141B9FA300F3B702 /* PointMultiplier.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CF64C08141B9FA300F3B702 /* PointMultiplier.m */; };
133 6CF64C0B141BA37000F3B702 /* multiplier.png in Resources */ = {isa = PBXBuildFile; fileRef = 6CF64C0A141BA37000F3B702 /* multiplier.png */; }; 133 6CF64C0B141BA37000F3B702 /* multiplier.png in Resources */ = {isa = PBXBuildFile; fileRef = 6CF64C0A141BA37000F3B702 /* multiplier.png */; };
134 6CF64C11141BA84200F3B702 /* Absorption2.wav in Resources */ = {isa = PBXBuildFile; fileRef = 6CF64C10141BA84200F3B702 /* Absorption2.wav */; };
134 DC6640030F83B3EA000B3E49 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC6640020F83B3EA000B3E49 /* AudioToolbox.framework */; }; 135 DC6640030F83B3EA000B3E49 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC6640020F83B3EA000B3E49 /* AudioToolbox.framework */; };
135 DC6640050F83B3EA000B3E49 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC6640040F83B3EA000B3E49 /* OpenAL.framework */; }; 136 DC6640050F83B3EA000B3E49 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC6640040F83B3EA000B3E49 /* OpenAL.framework */; };
136 DCCBF1B70F6022AE0040855A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCCBF1B60F6022AE0040855A /* CoreGraphics.framework */; }; 137 DCCBF1B70F6022AE0040855A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCCBF1B60F6022AE0040855A /* CoreGraphics.framework */; };
@@ -476,6 +477,7 @@
476 6CF64C07141B9FA300F3B702 /* PointMultiplier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PointMultiplier.h; sourceTree = "<group>"; }; 477 6CF64C07141B9FA300F3B702 /* PointMultiplier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PointMultiplier.h; sourceTree = "<group>"; };
477 6CF64C08141B9FA300F3B702 /* PointMultiplier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PointMultiplier.m; sourceTree = "<group>"; }; 478 6CF64C08141B9FA300F3B702 /* PointMultiplier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PointMultiplier.m; sourceTree = "<group>"; };
478 6CF64C0A141BA37000F3B702 /* multiplier.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = multiplier.png; sourceTree = "<group>"; }; 479 6CF64C0A141BA37000F3B702 /* multiplier.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = multiplier.png; sourceTree = "<group>"; };
480 6CF64C10141BA84200F3B702 /* Absorption2.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = Absorption2.wav; sourceTree = "<group>"; };
479 DC6640020F83B3EA000B3E49 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 481 DC6640020F83B3EA000B3E49 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
480 DC6640040F83B3EA000B3E49 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; 482 DC6640040F83B3EA000B3E49 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
481 DCCBF1B60F6022AE0040855A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 483 DCCBF1B60F6022AE0040855A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
@@ -809,6 +811,7 @@
809 3F6C7F4E13D647C500C038FE /* Sounds */ = { 811 3F6C7F4E13D647C500C038FE /* Sounds */ = {
810 isa = PBXGroup; 812 isa = PBXGroup;
811 children = ( 813 children = (
814 6CF64C10141BA84200F3B702 /* Absorption2.wav */,
812 3F6C7EC513D6335A00C038FE /* 1up.wav */, 815 3F6C7EC513D6335A00C038FE /* 1up.wav */,
813 3F6C7C4813D5DEDB00C038FE /* Item1.wav */, 816 3F6C7C4813D5DEDB00C038FE /* Item1.wav */,
814 3F6C7C3313D5DEB100C038FE /* Damage1.wav */, 817 3F6C7C3313D5DEB100C038FE /* Damage1.wav */,
@@ -1488,6 +1491,7 @@
1488 6C85834614056E57009EF100 /* venice.png in Resources */, 1491 6C85834614056E57009EF100 /* venice.png in Resources */,
1489 6CDBE80C14092DB00072F287 /* ledge.png in Resources */, 1492 6CDBE80C14092DB00072F287 /* ledge.png in Resources */,
1490 6CF64C0B141BA37000F3B702 /* multiplier.png in Resources */, 1493 6CF64C0B141BA37000F3B702 /* multiplier.png in Resources */,
1494 6CF64C11141BA84200F3B702 /* Absorption2.wav in Resources */,
1491 ); 1495 );
1492 runOnlyForDeploymentPostprocessing = 0; 1496 runOnlyForDeploymentPostprocessing = 0;
1493 }; 1497 };
diff --git a/Classes/FallingObject.h b/Classes/FallingObject.h index 3e28903..d3ac638 100755 --- a/Classes/FallingObject.h +++ b/Classes/FallingObject.h
@@ -14,6 +14,7 @@
14 CCSprite* sprite; 14 CCSprite* sprite;
15 int weight; 15 int weight;
16 id<FallingObjectDelegate> delegate; 16 id<FallingObjectDelegate> delegate;
17 BOOL flags[4];
17} 18}
18 19
19@property (readonly) CCSprite* sprite; 20@property (readonly) CCSprite* sprite;
@@ -23,5 +24,7 @@
23- (BOOL)tick; 24- (BOOL)tick;
24- (void)collideWithCart; 25- (void)collideWithCart;
25- (void)collideWithFloor; 26- (void)collideWithFloor;
27- (BOOL)flag:(int)flag;
28- (void)setFlag:(int)flag withValue:(BOOL)value;
26 29
27@end 30@end
diff --git a/Classes/FallingObject.m b/Classes/FallingObject.m index 85ea902..86edd15 100755 --- a/Classes/FallingObject.m +++ b/Classes/FallingObject.m
@@ -93,6 +93,16 @@
93 93
94} 94}
95 95
96- (BOOL)flag:(int)flag
97{
98 return flags[flag];
99}
100
101- (void)setFlag:(int)flag withValue:(BOOL)value
102{
103 flags[flag] = value;
104}
105
96- (void)dealloc 106- (void)dealloc
97{ 107{
98 [sprite.parent removeChild:sprite cleanup:YES]; 108 [sprite.parent removeChild:sprite cleanup:YES];
diff --git a/Classes/JumpGameMode.m b/Classes/JumpGameMode.m index 9076426..14cd365 100644 --- a/Classes/JumpGameMode.m +++ b/Classes/JumpGameMode.m
@@ -30,6 +30,8 @@
30 30
31@end 31@end
32 32
33// FallingObject flag 0 is whether the object is floating in water
34
33@implementation JumpGameMode 35@implementation JumpGameMode
34 36
35- (id)init 37- (id)init
@@ -116,24 +118,55 @@
116 } 118 }
117 } 119 }
118 120
121 NSMutableSet* discardedObjects = [NSMutableSet set];
119 for (FallingObject* object in objects) 122 for (FallingObject* object in objects)
120 { 123 {
121 if (waterTick > 0) 124 if ((object.sprite.position.y < 86) && (![object flag:0]))
125 {
126 for (CCSprite* ledge in ledges)
127 {
128 CGSize first = [object.sprite boundingBox].size;
129 CGSize second = [ledge boundingBox].size;
130
131 if (object.sprite.position.x > (ledge.position.x - second.width/2 - first.width/2))
132 {
133 if (object.sprite.position.x < (ledge.position.x + second.width/2 + first.width/2))
134 {
135 if (object.sprite.position.y > (ledge.position.y - second.height/2 - first.height/2))
136 {
137 if (object.sprite.position.y < (ledge.position.y + second.height/2 + first.height/2))
138 {
139 [discardedObjects addObject:object];
140 }
141 }
142 }
143 }
144 }
145 }
146
147 if ((waterTick >= 180) || ([object flag:0]))
122 { 148 {
123 object.sprite.position = ccp(object.sprite.position.x, MAX(object.sprite.position.y, water.position.y+80+11)); 149 object.sprite.position = ccp(object.sprite.position.x, MAX(object.sprite.position.y, water.position.y+80+11));
124 } else { 150 } else {
125 object.sprite.position = ccp(object.sprite.position.x-ledgeScrollSpeed, object.sprite.position.y); 151 object.sprite.position = ccp(object.sprite.position.x-ledgeScrollSpeed, object.sprite.position.y);
126 } 152 }
153
154 if ((waterTick > 0) && (object.sprite.position.y <= (water.position.y+80+11)))
155 {
156 [object setFlag:0 withValue:YES];
157 }
127 } 158 }
128 159
129 [ledges minusSet:discardedSet]; 160 [ledges minusSet:discardedSet];
161 [objects minusSet:discardedObjects];
130 162
131 if (rightmost <= 480) 163 if (rightmost <= 480)
132 { 164 {
133 int ledgeWidth = arc4random() % 9 + 1; 165 int ledgeWidth = arc4random() % 9 + 1;
166 int ledgeDistance = arc4random() % (ledgeScrollSpeed*ledgeScrollSpeed+1)*3/2;
134 CCTexture2D* texture = [[CCTexture2D alloc] initWithImage:[factory createLedgeWithWidth:ledgeWidth height:2]]; 167 CCTexture2D* texture = [[CCTexture2D alloc] initWithImage:[factory createLedgeWithWidth:ledgeWidth height:2]];
135 CCSprite* ledge = [CCSprite spriteWithTexture:texture]; 168 CCSprite* ledge = [CCSprite spriteWithTexture:texture];
136 ledge.position = ccp(rightmost + rightwidth + ledge.boundingBox.size.width/2+64, 32); 169 ledge.position = ccp(rightmost + rightwidth + ledge.boundingBox.size.width/2+64+ledgeDistance, 32);
137 [self addChild:ledge]; 170 [self addChild:ledge];
138 [ledges addObject:ledge]; 171 [ledges addObject:ledge];
139 [texture release]; 172 [texture release];
diff --git a/Classes/PointMultiplier.m b/Classes/PointMultiplier.m index a14bf68..0a9649d 100644 --- a/Classes/PointMultiplier.m +++ b/Classes/PointMultiplier.m
@@ -30,7 +30,7 @@
30 GameMode* gameLayer = ((GameMode*) sprite.parent); 30 GameMode* gameLayer = ((GameMode*) sprite.parent);
31 [gameLayer setPointMultiplier:gameLayer.pointMultiplier+1]; 31 [gameLayer setPointMultiplier:gameLayer.pointMultiplier+1];
32 32
33 [[SimpleAudioEngine sharedEngine] playEffect:[[NSBundle mainBundle] pathForResource:@"Item1" ofType:@"wav"]]; 33 [[SimpleAudioEngine sharedEngine] playEffect:[[NSBundle mainBundle] pathForResource:@"Absorption2" ofType:@"wav"]];
34} 34}
35 35
36@end 36@end
diff --git a/Resources/Absorption2.wav b/Resources/Absorption2.wav new file mode 100755 index 0000000..d508ab4 --- /dev/null +++ b/Resources/Absorption2.wav
Binary files differ