From d19677f9f73d8fe7436982bdf8d40f69d69d1b43 Mon Sep 17 00:00:00 2001 From: Starla Insigna Date: Fri, 12 Aug 2011 09:51:50 -0400 Subject: Added tutorial mode GameLayer was also renamed to ClassicGameMode and its pause functionality and score/lives counters were moved out to GameMode. FallingObjectDelegate was created to allow for custom code to be run when items were caught/missed, something that is used extensively by tutorial mode. Important: Cart Collect's bundle identifier was changed in this revision from com.fourisland.Cart-Collect to com.apatheticink.Cart-Collect, so ensure that before attempting to compile/run this build, you clear your build directory and remove the old version of Cart Collect from your device. Closes #193 --- Classes/GameLayer.m | 284 ---------------------------------------------------- 1 file changed, 284 deletions(-) delete mode 100755 Classes/GameLayer.m (limited to 'Classes/GameLayer.m') diff --git a/Classes/GameLayer.m b/Classes/GameLayer.m deleted file mode 100755 index 95bc83b..0000000 --- a/Classes/GameLayer.m +++ /dev/null @@ -1,284 +0,0 @@ -// -// GameLayer.m -// Cart Collect -// -// Created by iD Student Account on 7/18/11. -// Copyright 2011 __MyCompanyName__. All rights reserved. -// - -#import "GameLayer.h" -#import "FallingObject.h" -#import "Cherry.h" -#import "Bottle.h" -#import "OneUp.h" -#import "Rock.h" -#import "GameOverLayer.h" -#import "SimpleAudioEngine.h" -#import "MainMenuLayer.h" - -@implementation GameLayer - -@synthesize currentTutorial; - -- (void)tick:(ccTime)dt -{ - int lastScore = score; - - [super tick:dt]; - - if (lives == 0) - { - [self unscheduleAllSelectors]; - - [[CCDirector sharedDirector] replaceScene:[CCTransitionSlideInT transitionWithDuration:1.5f scene:[GameOverLayer sceneWithScore:score]]]; - } 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 < 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]; - - int winWidth = [CCDirector sharedDirector].winSize.width; - //int winHeight = [CCDirector sharedDirector].winSize.height; - int cartScale = 2; - - if (self != nil) - { - CCSprite* backgroundImage = [CCSprite spriteWithFile:@"SeaBeach.png"]; - backgroundImage.position = ccp(240, 160); - [self addChild:backgroundImage z:0]; - - cart = [[Cart alloc] initWithSprite:[CCSprite spriteWithFile:@"cart.png"]]; - cart.sprite.position = ccp(winWidth/2, 22); - cart.sprite.scale = cartScale; - [self addChild:cart.sprite]; - - scoreLabel = [CCLabelBMFont labelWithString:@"Score: 0" fntFile:@"helvetica2.fnt"]; - scoreLabel.position = ccp(50, 300); - [self addChild:scoreLabel]; - - livesLabel = [CCLabelBMFont labelWithString:@"Lives: 3" fntFile:@"helvetica2.fnt"]; - livesLabel.position = ccp(50, 280); - [self addChild:livesLabel]; - - score = 0; - lives = 3; - - CCMenuItemImage* pauseButton = [CCMenuItemImage itemFromNormalImage:@"pause2.png" selectedImage:@"pause.png" target:self selector:@selector(pause)]; - CCMenu* pauseMenu = [CCMenu menuWithItems:pauseButton, nil]; - [pauseMenu setPosition:ccp(480-8-16, 320-8-16)]; - [self addChild:pauseMenu]; - - addSpeed = 2.5f; - } - - return self; -} - -- (void)onEnter -{ - [super onEnter]; - - [self schedule:@selector(randomlyAddObject:) interval:addSpeed]; -} - -- (void)setScore:(int)m_score -{ - score = m_score; - - [scoreLabel setString:[NSString stringWithFormat:@"Score: %d", score]]; -} - -- (void)setLives:(int)m_lives -{ - lives = m_lives; - - [livesLabel setString:[NSString stringWithFormat:@"Lives: %d", lives]]; -} - -- (void)pause -{ - if (self.currentTutorial != nil) - { - [self.currentTutorial removeFromSuperview]; - } - - [self pauseSchedulerAndActions]; - - shadedLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 127)]; - [[[CCDirector sharedDirector] runningScene] addChild:shadedLayer]; - - pauseLayer = [CCLayer node]; - CCLabelBMFont* scoreLabel2 = [CCLabelBMFont labelWithString:@"PAUSE" fntFile:@"helvetica.fnt"]; - scoreLabel2.position = ccp(240,90); - [pauseLayer addChild:scoreLabel2]; - - CCMenuItemImage* pauseButton = [CCMenuItemImage itemFromNormalImage:@"pause2.png" selectedImage:@"pause.png" target:self selector:@selector(unpause)]; - CCMenu* pauseMenu = [CCMenu menuWithItems:pauseButton, nil]; - [pauseMenu setPosition:ccp(480-8-16, 320-8-16)]; - [pauseLayer addChild:pauseMenu]; - - CCMenuItemImage* newgameMenuItem = [CCMenuItemImage itemFromNormalImage:@"back.png" selectedImage:@"back2.png" target:self selector:@selector(mainmenu)]; - CCMenu* myMenu = [CCMenu menuWithItems:newgameMenuItem, nil]; - myMenu.position = ccp(240, 60); - [pauseLayer addChild:myMenu]; - - [[[CCDirector sharedDirector] runningScene] addChild:pauseLayer]; -} - -- (void)unpause -{ - [[[CCDirector sharedDirector] runningScene] removeChild:shadedLayer cleanup:YES]; - [[[CCDirector sharedDirector] runningScene] removeChild:pauseLayer cleanup:YES]; - - shadedLayer = nil; - pauseLayer = nil; - - if (self.currentTutorial != nil) - { - [[[CCDirector sharedDirector] openGLView] addSubview:self.currentTutorial]; - } else { - [self resumeSchedulerAndActions]; - } -} - -- (void)mainmenu -{ - [[CCDirector sharedDirector] replaceScene:[MainMenuLayer scene]]; -} - -- (void)setCurrentTutorial:(TutorialBubble *)m_currentTutorial -{ - @synchronized(self) - { - if (currentTutorial != m_currentTutorial) - { - [currentTutorial release]; - currentTutorial = [m_currentTutorial retain]; - } - } - - if (currentTutorial != nil) - { - [currentTutorial setTarget:self action:@selector(endTutorial)]; - [[[CCDirector sharedDirector] openGLView] addSubview:currentTutorial]; - [self pauseSchedulerAndActions]; - } -} - -- (void)endTutorial -{ - self.currentTutorial = nil; - [self resumeSchedulerAndActions]; -} - -@end -- cgit 1.4.1