diff options
-rwxr-xr-x | Cartographic.xcodeproj/project.pbxproj | 18 | ||||
-rw-r--r-- | Classes/JumpGameMode.h | 21 | ||||
-rw-r--r-- | Classes/JumpGameMode.m | 109 | ||||
-rw-r--r-- | Resources/jump.png | bin | 0 -> 2071 bytes | |||
-rw-r--r-- | Resources/jump2.png | bin | 0 -> 2079 bytes | |||
-rw-r--r-- | Resources/water.png | bin | 0 -> 981 bytes |
6 files changed, 148 insertions, 0 deletions
diff --git a/Cartographic.xcodeproj/project.pbxproj b/Cartographic.xcodeproj/project.pbxproj index 8479e51..58ab09b 100755 --- a/Cartographic.xcodeproj/project.pbxproj +++ b/Cartographic.xcodeproj/project.pbxproj | |||
@@ -117,6 +117,10 @@ | |||
117 | 6C39CFF813FD7638002B21AF /* GameModeSelectionLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */; }; | 117 | 6C39CFF813FD7638002B21AF /* GameModeSelectionLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */; }; |
118 | 6C39D00813FD9037002B21AF /* florence.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D00713FD9037002B21AF /* florence.png */; }; | 118 | 6C39D00813FD9037002B21AF /* florence.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D00713FD9037002B21AF /* florence.png */; }; |
119 | 6C39D01213FD9945002B21AF /* paris.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D01113FD9945002B21AF /* paris.png */; }; | 119 | 6C39D01213FD9945002B21AF /* paris.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39D01113FD9945002B21AF /* paris.png */; }; |
120 | 6C39CFE513FC4635002B21AF /* JumpGameMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C39CFE413FC4635002B21AF /* JumpGameMode.m */; }; | ||
121 | 6C39CFE713FC46CD002B21AF /* water.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFE613FC46CD002B21AF /* water.png */; }; | ||
122 | 6C39CFE913FC8AC4002B21AF /* jump2.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFE813FC8AC4002B21AF /* jump2.png */; }; | ||
123 | 6C39CFEB13FC8ACA002B21AF /* jump.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C39CFEA13FC8ACA002B21AF /* jump.png */; }; | ||
120 | 6C5179C613DF3839006F1F38 /* Morning1.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C5179C513DF3839006F1F38 /* Morning1.png */; }; | 124 | 6C5179C613DF3839006F1F38 /* Morning1.png in Resources */ = {isa = PBXBuildFile; fileRef = 6C5179C513DF3839006F1F38 /* Morning1.png */; }; |
121 | 6CC89DD913F2F4E6003704F7 /* Entitlements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6CC89DD813F2F4E6003704F7 /* Entitlements.plist */; }; | 125 | 6CC89DD913F2F4E6003704F7 /* Entitlements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6CC89DD813F2F4E6003704F7 /* Entitlements.plist */; }; |
122 | 6CC89DDF13F31413003704F7 /* TutorialMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CC89DDE13F31413003704F7 /* TutorialMode.m */; }; | 126 | 6CC89DDF13F31413003704F7 /* TutorialMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CC89DDE13F31413003704F7 /* TutorialMode.m */; }; |
@@ -442,6 +446,11 @@ | |||
442 | 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GameModeSelectionLayer.m; sourceTree = "<group>"; }; | 446 | 6C39CFF713FD7637002B21AF /* GameModeSelectionLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GameModeSelectionLayer.m; sourceTree = "<group>"; }; |
443 | 6C39D00713FD9037002B21AF /* florence.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = florence.png; sourceTree = "<group>"; }; | 447 | 6C39D00713FD9037002B21AF /* florence.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = florence.png; sourceTree = "<group>"; }; |
444 | 6C39D01113FD9945002B21AF /* paris.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = paris.png; sourceTree = "<group>"; }; | 448 | 6C39D01113FD9945002B21AF /* paris.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = paris.png; sourceTree = "<group>"; }; |
449 | 6C39CFE313FC4635002B21AF /* JumpGameMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JumpGameMode.h; sourceTree = "<group>"; }; | ||
450 | 6C39CFE413FC4635002B21AF /* JumpGameMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JumpGameMode.m; sourceTree = "<group>"; }; | ||
451 | 6C39CFE613FC46CD002B21AF /* water.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = water.png; sourceTree = "<group>"; }; | ||
452 | 6C39CFE813FC8AC4002B21AF /* jump2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = jump2.png; sourceTree = "<group>"; }; | ||
453 | 6C39CFEA13FC8ACA002B21AF /* jump.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = jump.png; sourceTree = "<group>"; }; | ||
445 | 6C5179C513DF3839006F1F38 /* Morning1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Morning1.png; sourceTree = "<group>"; }; | 454 | 6C5179C513DF3839006F1F38 /* Morning1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Morning1.png; sourceTree = "<group>"; }; |
446 | 6CB532581403BA4F00780A5E /* GameModeSelectionDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameModeSelectionDelegate.h; sourceTree = "<group>"; }; | 455 | 6CB532581403BA4F00780A5E /* GameModeSelectionDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameModeSelectionDelegate.h; sourceTree = "<group>"; }; |
447 | 6CC89DD813F2F4E6003704F7 /* Entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Entitlements.plist; sourceTree = "<group>"; }; | 456 | 6CC89DD813F2F4E6003704F7 /* Entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Entitlements.plist; sourceTree = "<group>"; }; |
@@ -765,6 +774,7 @@ | |||
765 | 3F6C7F4D13D647B600C038FE /* Sprites */ = { | 774 | 3F6C7F4D13D647B600C038FE /* Sprites */ = { |
766 | isa = PBXGroup; | 775 | isa = PBXGroup; |
767 | children = ( | 776 | children = ( |
777 | 6C39CFE613FC46CD002B21AF /* water.png */, | ||
768 | 6C29041113EAEC8A0032DA0F /* framestuff.png */, | 778 | 6C29041113EAEC8A0032DA0F /* framestuff.png */, |
769 | 3F6C7EE013D636BE00C038FE /* rock.png */, | 779 | 3F6C7EE013D636BE00C038FE /* rock.png */, |
770 | 3F63FA3E13D4EE53003B3D14 /* oneup.png */, | 780 | 3F63FA3E13D4EE53003B3D14 /* oneup.png */, |
@@ -803,6 +813,8 @@ | |||
803 | children = ( | 813 | children = ( |
804 | 6C19F1641401917900F9CCD3 /* feedback2.png */, | 814 | 6C19F1641401917900F9CCD3 /* feedback2.png */, |
805 | 6C19F1621401917500F9CCD3 /* feedback.png */, | 815 | 6C19F1621401917500F9CCD3 /* feedback.png */, |
816 | 6C39CFEA13FC8ACA002B21AF /* jump.png */, | ||
817 | 6C39CFE813FC8AC4002B21AF /* jump2.png */, | ||
806 | 6C39CFE113FC2713002B21AF /* tutorial2.png */, | 818 | 6C39CFE113FC2713002B21AF /* tutorial2.png */, |
807 | 6C39CFDF13FC2708002B21AF /* tutorial.png */, | 819 | 6C39CFDF13FC2708002B21AF /* tutorial.png */, |
808 | 3F7D0F4813D8F17C00B6CE14 /* highscores.png */, | 820 | 3F7D0F4813D8F17C00B6CE14 /* highscores.png */, |
@@ -911,6 +923,8 @@ | |||
911 | 3FE79CD313D4DE37001A6B93 /* ClassicGameMode.m */, | 923 | 3FE79CD313D4DE37001A6B93 /* ClassicGameMode.m */, |
912 | 6CC89DDD13F31413003704F7 /* TutorialMode.h */, | 924 | 6CC89DDD13F31413003704F7 /* TutorialMode.h */, |
913 | 6CC89DDE13F31413003704F7 /* TutorialMode.m */, | 925 | 6CC89DDE13F31413003704F7 /* TutorialMode.m */, |
926 | 6C39CFE313FC4635002B21AF /* JumpGameMode.h */, | ||
927 | 6C39CFE413FC4635002B21AF /* JumpGameMode.m */, | ||
914 | ); | 928 | ); |
915 | name = "Game Modes"; | 929 | name = "Game Modes"; |
916 | sourceTree = "<group>"; | 930 | sourceTree = "<group>"; |
@@ -1437,6 +1451,9 @@ | |||
1437 | 6C39D01213FD9945002B21AF /* paris.png in Resources */, | 1451 | 6C39D01213FD9945002B21AF /* paris.png in Resources */, |
1438 | 6C19F1631401917500F9CCD3 /* feedback.png in Resources */, | 1452 | 6C19F1631401917500F9CCD3 /* feedback.png in Resources */, |
1439 | 6C19F1651401917900F9CCD3 /* feedback2.png in Resources */, | 1453 | 6C19F1651401917900F9CCD3 /* feedback2.png in Resources */, |
1454 | 6C39CFE713FC46CD002B21AF /* water.png in Resources */, | ||
1455 | 6C39CFE913FC8AC4002B21AF /* jump2.png in Resources */, | ||
1456 | 6C39CFEB13FC8ACA002B21AF /* jump.png in Resources */, | ||
1440 | ); | 1457 | ); |
1441 | runOnlyForDeploymentPostprocessing = 0; | 1458 | runOnlyForDeploymentPostprocessing = 0; |
1442 | }; | 1459 | }; |
@@ -1487,6 +1504,7 @@ | |||
1487 | 6C18C3D214033DC50005AA4C /* CocosOverlayScrollView.m in Sources */, | 1504 | 6C18C3D214033DC50005AA4C /* CocosOverlayScrollView.m in Sources */, |
1488 | 6C18C3D314033DC60005AA4C /* NMPanelMenu.m in Sources */, | 1505 | 6C18C3D314033DC60005AA4C /* NMPanelMenu.m in Sources */, |
1489 | 6C18C3D414033DC60005AA4C /* TouchDelegatingView.m in Sources */, | 1506 | 6C18C3D414033DC60005AA4C /* TouchDelegatingView.m in Sources */, |
1507 | 6C39CFE513FC4635002B21AF /* JumpGameMode.m in Sources */, | ||
1490 | ); | 1508 | ); |
1491 | runOnlyForDeploymentPostprocessing = 0; | 1509 | runOnlyForDeploymentPostprocessing = 0; |
1492 | }; | 1510 | }; |
diff --git a/Classes/JumpGameMode.h b/Classes/JumpGameMode.h new file mode 100644 index 0000000..9753720 --- /dev/null +++ b/Classes/JumpGameMode.h | |||
@@ -0,0 +1,21 @@ | |||
1 | // | ||
2 | // JumpGameMode.h | ||
3 | // Cart Collect | ||
4 | // | ||
5 | // Created by Starla Insigna on 8/17/11. | ||
6 | // Copyright 2011 Four Island. All rights reserved. | ||
7 | // | ||
8 | |||
9 | #import "GameMode.h" | ||
10 | |||
11 | @interface JumpGameMode : GameMode <CCStandardTouchDelegate> { | ||
12 | CCSprite* water; | ||
13 | int waterTick; | ||
14 | BOOL wave; | ||
15 | CGPoint gestureStartPoint; | ||
16 | int jumpTick; | ||
17 | BOOL jump; | ||
18 | float expectedAngle; | ||
19 | } | ||
20 | |||
21 | @end | ||
diff --git a/Classes/JumpGameMode.m b/Classes/JumpGameMode.m new file mode 100644 index 0000000..e30be6a --- /dev/null +++ b/Classes/JumpGameMode.m | |||
@@ -0,0 +1,109 @@ | |||
1 | // | ||
2 | // JumpGameMode.m | ||
3 | // Cart Collect | ||
4 | // | ||
5 | // Created by Starla Insigna on 8/17/11. | ||
6 | // Copyright 2011 Four Island. All rights reserved. | ||
7 | // | ||
8 | |||
9 | #import "JumpGameMode.h" | ||
10 | |||
11 | #define kMinimumGestureLength 50 | ||
12 | |||
13 | @implementation JumpGameMode | ||
14 | |||
15 | - (id)init | ||
16 | { | ||
17 | self = [super init]; | ||
18 | |||
19 | if (nil != self) | ||
20 | { | ||
21 | water = [CCSprite spriteWithFile:@"water.png"]; | ||
22 | water.position = ccp(240, -80); | ||
23 | [self addChild:water]; | ||
24 | |||
25 | self.isTouchEnabled = YES; | ||
26 | |||
27 | waterTick = 0; | ||
28 | wave = NO; | ||
29 | } | ||
30 | |||
31 | return self; | ||
32 | } | ||
33 | |||
34 | - (void)onEnterTransitionDidFinish | ||
35 | { | ||
36 | [super onEnterTransitionDidFinish]; | ||
37 | |||
38 | [self scheduleDelayedAction:^{ | ||
39 | wave = YES; | ||
40 | } delay:3.0f]; | ||
41 | } | ||
42 | |||
43 | - (void)tick:(ccTime)dt | ||
44 | { | ||
45 | [super tick:dt]; | ||
46 | |||
47 | if (wave) | ||
48 | { | ||
49 | waterTick++; | ||
50 | |||
51 | water.position = ccp(240, 160 * sin(waterTick / (36 * M_PI)) - 80); | ||
52 | |||
53 | if (waterTick == 180) | ||
54 | { | ||
55 | wave = NO; | ||
56 | |||
57 | [self scheduleDelayedAction:^{ | ||
58 | wave = YES; | ||
59 | } delay:10.0f]; | ||
60 | } else if (waterTick == 360) | ||
61 | { | ||
62 | wave = NO; | ||
63 | waterTick = 0; | ||
64 | } | ||
65 | } | ||
66 | |||
67 | if (jump) | ||
68 | { | ||
69 | jumpTick++; | ||
70 | |||
71 | cart.sprite.position = ccp(cart.sprite.position.x, MAX(100 * sin(jumpTick / (2 * M_PI)) + 22, water.position.y+80+11)); | ||
72 | |||
73 | if (jumpTick == 20) | ||
74 | { | ||
75 | jump = NO; | ||
76 | jumpTick = 0; | ||
77 | } | ||
78 | } else { | ||
79 | cart.sprite.position = ccp(cart.sprite.position.x, MAX(22, water.position.y+80+11)); | ||
80 | } | ||
81 | } | ||
82 | |||
83 | - (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event | ||
84 | { | ||
85 | UITouch* touch = [touches anyObject]; | ||
86 | gestureStartPoint = [touch locationInView:nil]; | ||
87 | } | ||
88 | |||
89 | - (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event | ||
90 | { | ||
91 | UITouch* touch = [touches anyObject]; | ||
92 | CGPoint gestureCurrentPosition = [touch locationInView:nil]; | ||
93 | CGFloat angle = atan2f(gestureCurrentPosition.y - gestureStartPoint.y, gestureCurrentPosition.x - gestureStartPoint.x); | ||
94 | CGFloat distance = sqrt(powf((gestureCurrentPosition.x - gestureStartPoint.x),2) + powf((gestureCurrentPosition.y - gestureStartPoint.y),2)); | ||
95 | |||
96 | if ((distance >= kMinimumGestureLength) && (angle >= expectedAngle - M_PI_4) && (angle <= expectedAngle + M_PI_4) && (cart.sprite.position.y == 22)) | ||
97 | { | ||
98 | jump = YES; | ||
99 | } | ||
100 | } | ||
101 | |||
102 | - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration | ||
103 | { | ||
104 | [super accelerometer:accelerometer didAccelerate:acceleration]; | ||
105 | |||
106 | expectedAngle = acceleration.y*M_PI_2; | ||
107 | } | ||
108 | |||
109 | @end | ||
diff --git a/Resources/jump.png b/Resources/jump.png new file mode 100644 index 0000000..4546088 --- /dev/null +++ b/Resources/jump.png | |||
Binary files differ | |||
diff --git a/Resources/jump2.png b/Resources/jump2.png new file mode 100644 index 0000000..3e83046 --- /dev/null +++ b/Resources/jump2.png | |||
Binary files differ | |||
diff --git a/Resources/water.png b/Resources/water.png new file mode 100644 index 0000000..bf4ff13 --- /dev/null +++ b/Resources/water.png | |||
Binary files differ | |||