blob: b8fe636288e66bc66e8abba44f5386995f0bcb4f (
plain) (
tree)
|
|
//
// GameLayer.m
// Cart Collect
//
// Created by iD Student Account on 7/18/11.
// Copyright 2011 __MyCompanyName__. All rights reserved.
//
#import "ClassicGameMode.h"
#import "FallingObject.h"
#import "Cherry.h"
#import "Bottle.h"
#import "OneUp.h"
#import "Rock.h"
#import "GameOverScene.h"
#import "SimpleAudioEngine.h"
#import "CCNotifications.h"
@implementation ClassicGameMode
- (void)tick:(ccTime)dt
{
int lastScore = score;
[super tick:dt];
if (lives == 0)
{
[self unscheduleAllSelectors];
[[CCDirector sharedDirector] replaceScene:[CCTransitionSlideInT transitionWithDuration:1.5f scene:[GameOverScene sceneWithScore:score gameMode:@"Collect"]]];
} else if (score > lastScore)
{
if ((lastScore < 6500) && (score >= 6500))
{
[self unschedule:@selector(randomlyAddObject:)];
[self schedule:@selector(randomlyAddObject:) interval:0.6f];
addSpeed = 0.6f;
} else if ((lastScore < 5000) && (score >= 5000))
{
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
if (![defaults boolForKey:@"unlockedJumpMode"])
{
[[CCNotifications sharedManager] addWithTitle:@"Jump" message:@"You've unlocked a new game mode!" image:@"venice.png"];
[defaults setBool:YES forKey:@"unlockedJumpMode"];
[defaults synchronize];
}
} else if ((lastScore < 4500) && (score >= 4500))
{
[self unschedule:@selector(randomlyAddObject:)];
[self schedule:@selector(randomlyAddObject:) interval:0.7f];
addSpeed = 0.7f;
} else if ((lastScore < 2500) && (score >= 2500))
{
[self unschedule:@selector(randomlyAddObject:)];
[self schedule:@selector(randomlyAddObject:) interval:0.8f];
addSpeed = 0.8f;
} else if ((lastScore < 1500) && (score >= 1500))
{
[self unschedule:@selector(randomlyAddObject:)];
[self schedule:@selector(randomlyAddObject:) interval:0.9f];
addSpeed = 0.9f;
} else if ((lastScore < 500) && (score >= 500))
{
[self unschedule:@selector(randomlyAddObject:)];
[self schedule:@selector(randomlyAddObject:) interval:1.0f];
addSpeed = 1.0f;
} else if ((lastScore < 150) && (score >= 150))
{
[self unschedule:@selector(randomlyAddObject:)];
[self schedule:@selector(randomlyAddObject:) interval:2.0f];
addSpeed = 2.0f;
}
}
}
- (void)randomlyAddObject:(ccTime)dt
{
FallingObject* object;
int oneuppercent = 98 - (lives == 1 ? 1 : 0);
if (score < 1000)
{
int randomval = arc4random()%100;
if (randomval < 65)
{
object = [[Cherry alloc] init];
} else if (randomval < oneuppercent)
{
object = [[Bottle alloc] init];
} else {
object = [[OneUp alloc] init];
}
} else {
int randomval = arc4random()%100;
if (randomval < 40)
{
object = [[Cherry alloc] init];
} else if (randomval < 70)
{
object = [[Rock alloc] init];
} else if (randomval < oneuppercent)
{
object = [[Bottle alloc] init];
} else {
object = [[OneUp alloc] init];
}
}
int objectX = arc4random()%448+16;
object.sprite.position = ccp(objectX, 360);
object.sprite.scale = 1;
[self addChild:object.sprite];
[objects addObject:object];
[object release];
if (score >= 2000)
{
if (arc4random() % 100 > 80)
{
object = [[Rock alloc] init];
objectX = arc4random()%448+16;
object.sprite.position = ccp(objectX, 360);
object.sprite.scale = 1;
[self addChild:object.sprite];
[objects addObject:object];
[object release];
}
}
if (score >= 4000)
{
if (arc4random() % 100 > 80)
{
object = [[Rock alloc] init];
objectX = arc4random()%448+16;
object.sprite.position = ccp(objectX, 360);
object.sprite.scale = 1;
[self addChild:object.sprite];
[objects addObject:object];
[object release];
}
}
}
- (id)init
{
self = [super init];
if (nil != self)
{
CCSprite* backgroundImage = [CCSprite spriteWithFile:@"SeaBeach.png"];
backgroundImage.position = ccp(240, 160);
[self addChild:backgroundImage z:-1];
addSpeed = 2.5f;
}
return self;
}
- (void)onEnterTransitionDidFinish
{
[super onEnterTransitionDidFinish];
[self schedule:@selector(randomlyAddObject:) interval:addSpeed];
}
@end
|