diff options
Diffstat (limited to 'Classes')
| -rwxr-xr-x | Classes/FallingObject.h | 2 | ||||
| -rwxr-xr-x | Classes/FallingObject.m | 10 | ||||
| -rw-r--r-- | Classes/JumpGameMode.m | 29 |
3 files changed, 20 insertions, 21 deletions
| diff --git a/Classes/FallingObject.h b/Classes/FallingObject.h index d3ac638..6cb0c14 100755 --- a/Classes/FallingObject.h +++ b/Classes/FallingObject.h | |||
| @@ -24,7 +24,5 @@ | |||
| 24 | - (BOOL)tick; | 24 | - (BOOL)tick; |
| 25 | - (void)collideWithCart; | 25 | - (void)collideWithCart; |
| 26 | - (void)collideWithFloor; | 26 | - (void)collideWithFloor; |
| 27 | - (BOOL)flag:(int)flag; | ||
| 28 | - (void)setFlag:(int)flag withValue:(BOOL)value; | ||
| 29 | 27 | ||
| 30 | @end | 28 | @end |
| diff --git a/Classes/FallingObject.m b/Classes/FallingObject.m index 86edd15..85ea902 100755 --- a/Classes/FallingObject.m +++ b/Classes/FallingObject.m | |||
| @@ -93,16 +93,6 @@ | |||
| 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 | |||
| 106 | - (void)dealloc | 96 | - (void)dealloc |
| 107 | { | 97 | { |
| 108 | [sprite.parent removeChild:sprite cleanup:YES]; | 98 | [sprite.parent removeChild:sprite cleanup:YES]; |
| diff --git a/Classes/JumpGameMode.m b/Classes/JumpGameMode.m index 1e55b48..b192058 100644 --- a/Classes/JumpGameMode.m +++ b/Classes/JumpGameMode.m | |||
| @@ -30,7 +30,19 @@ | |||
| 30 | 30 | ||
| 31 | @end | 31 | @end |
| 32 | 32 | ||
| 33 | // FallingObject flag 0 is whether the object is floating in water | 33 | @implementation FallingObject (Flags) |
| 34 | |||
| 35 | - (BOOL)fellDuringWave | ||
| 36 | { | ||
| 37 | return flags[0]; | ||
| 38 | } | ||
| 39 | |||
| 40 | - (void)setFellDuringWave:(BOOL)value | ||
| 41 | { | ||
| 42 | flags[0] = value; | ||
| 43 | } | ||
| 44 | |||
| 45 | @end | ||
| 34 | 46 | ||
| 35 | @implementation JumpGameMode | 47 | @implementation JumpGameMode |
| 36 | 48 | ||
| @@ -118,10 +130,12 @@ | |||
| 118 | } | 130 | } |
| 119 | } | 131 | } |
| 120 | 132 | ||
| 133 | [ledges minusSet:discardedSet]; | ||
| 134 | |||
| 121 | NSMutableSet* discardedObjects = [NSMutableSet set]; | 135 | NSMutableSet* discardedObjects = [NSMutableSet set]; |
| 122 | for (FallingObject* object in objects) | 136 | for (FallingObject* object in objects) |
| 123 | { | 137 | { |
| 124 | if ((object.sprite.position.y < 86) && (![object flag:0])) | 138 | if (object.sprite.position.y < (64+object.sprite.boundingBox.size.height/2)) |
| 125 | { | 139 | { |
| 126 | for (CCSprite* ledge in ledges) | 140 | for (CCSprite* ledge in ledges) |
| 127 | { | 141 | { |
| @@ -144,20 +158,14 @@ | |||
| 144 | } | 158 | } |
| 145 | } | 159 | } |
| 146 | 160 | ||
| 147 | if ((waterTick >= 180) || ((waterTick > 0) && ([object flag:0]))) | 161 | if (object.fellDuringWave) |
| 148 | { | 162 | { |
| 149 | object.sprite.position = ccp(object.sprite.position.x, MAX(object.sprite.position.y, water.position.y+80+11)); | 163 | object.sprite.position = ccp(object.sprite.position.x, MAX(object.sprite.position.y, water.position.y+80+11)); |
| 150 | } else { | 164 | } else { |
| 151 | object.sprite.position = ccp(object.sprite.position.x-ledgeScrollSpeed, object.sprite.position.y); | 165 | object.sprite.position = ccp(object.sprite.position.x-ledgeScrollSpeed, object.sprite.position.y); |
| 152 | } | 166 | } |
| 153 | |||
| 154 | if ((waterTick > 0) && (object.sprite.position.y <= (water.position.y+80+11))) | ||
| 155 | { | ||
| 156 | [object setFlag:0 withValue:YES]; | ||
| 157 | } | ||
| 158 | } | 167 | } |
| 159 | 168 | ||
| 160 | [ledges minusSet:discardedSet]; | ||
| 161 | [objects minusSet:discardedObjects]; | 169 | [objects minusSet:discardedObjects]; |
| 162 | 170 | ||
| 163 | if (rightmost <= 480) | 171 | if (rightmost <= 480) |
| @@ -396,6 +404,7 @@ | |||
| 396 | 404 | ||
| 397 | object.sprite.position = ccp(objectX, 360); | 405 | object.sprite.position = ccp(objectX, 360); |
| 398 | object.sprite.scale = 1; | 406 | object.sprite.scale = 1; |
| 407 | object.fellDuringWave = waterTick > 0; | ||
| 399 | [self addChild:object.sprite]; | 408 | [self addChild:object.sprite]; |
| 400 | 409 | ||
| 401 | [objects addObject:object]; | 410 | [objects addObject:object]; |
| @@ -429,6 +438,7 @@ | |||
| 429 | 438 | ||
| 430 | object.sprite.position = ccp(objectX, 360); | 439 | object.sprite.position = ccp(objectX, 360); |
| 431 | object.sprite.scale = 1; | 440 | object.sprite.scale = 1; |
| 441 | object.fellDuringWave = waterTick > 0; | ||
| 432 | [self addChild:object.sprite]; | 442 | [self addChild:object.sprite]; |
| 433 | 443 | ||
| 434 | [objects addObject:object]; | 444 | [objects addObject:object]; |
| @@ -464,6 +474,7 @@ | |||
| 464 | 474 | ||
| 465 | object.sprite.position = ccp(objectX, 360); | 475 | object.sprite.position = ccp(objectX, 360); |
| 466 | object.sprite.scale = 1; | 476 | object.sprite.scale = 1; |
| 477 | object.fellDuringWave = waterTick > 0; | ||
| 467 | [self addChild:object.sprite]; | 478 | [self addChild:object.sprite]; |
| 468 | 479 | ||
| 469 | [objects addObject:object]; | 480 | [objects addObject:object]; |
