Skip to content

Commit

Permalink
added clouds, more platforms, score label, game over
Browse files Browse the repository at this point in the history
  • Loading branch information
haqu committed May 27, 2009
1 parent 14f67e1 commit 20fd9e4
Show file tree
Hide file tree
Showing 14 changed files with 541 additions and 165 deletions.
5 changes: 3 additions & 2 deletions Classes/AppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ - (void)applicationDidFinishLaunching:(UIApplication *)application {
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[window setUserInteractionEnabled:YES];
[window setMultipleTouchEnabled:YES];



[[Director sharedDirector] setPixelFormat:kRGBA8];
[[Director sharedDirector] attachInWindow:window];
[[Director sharedDirector] setDisplayFPS:YES];
// [[Director sharedDirector] setDisplayFPS:YES];
[[Director sharedDirector] setAnimationInterval:1.0/kFPS];

[Texture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888];
Expand Down
13 changes: 13 additions & 0 deletions Classes/Cloud.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#import "cocos2d.h"

@interface Cloud : NSObject {
AtlasSprite *sprite;
ccVertex2F pos;
float distance;
float scaled_width;
float scaled_height;
}
- (id)initWithSpriteManager:(AtlasSpriteManager*)sprites;
- (void)reset;
- (void)moveDownBy:(float)delta;
@end
58 changes: 58 additions & 0 deletions Classes/Cloud.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#import "Cloud.h"

@implementation Cloud

- (id)initWithSpriteManager:(AtlasSpriteManager*)sprites {

CGRect rect;
switch(random()%3) {
case 0: rect = CGRectMake(336,16,256,106); break;
case 1: rect = CGRectMake(336,128,257,108); break;
case 2: rect = CGRectMake(336,240,252,117); break;
}
sprite = [AtlasSprite spriteWithRect:rect spriteManager:sprites];
[sprites addChild:sprite];

sprite.opacity = 90;

return self;
}

- (void)reset {

distance = random()%20;

float scaleX = 3.0f / (distance + 1.0f);
float scaleY = 3.0f / (distance + 1.0f);
if(random()%2==1) scaleX = -scaleX;
sprite.scaleX = scaleX;
sprite.scaleY = scaleY;

CGSize size = sprite.contentSize;
scaled_width = fabsf(size.width * sprite.scaleX);
scaled_height = fabsf(size.height * sprite.scaleY);
float x = random()%(320+(int)scaled_width) - scaled_width/2;
float y = random()%(960+(int)scaled_height) - scaled_height/2;
pos = CGPointMake(x,y);

sprite.position = pos;
}

- (void)dealloc {
NSLog(@"cloud dealloc");
NSLog(@"sprite retainCount = %d",[sprite retainCount]);
[sprite release];
[super dealloc];
}

- (void)moveDownBy:(float)delta {
pos.y -= delta / (distance * 2.0f + 1.0f);

if(pos.y < -scaled_height/2) {
[self reset];
}

sprite.position = pos;
}

@end
4 changes: 3 additions & 1 deletion Classes/Constants.h
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
#define kFPS 60
#define kFPS 60
#define kPlatformMaxStep 200.0f
#define kPlatformFromTopOfSpriteToGround 10
16 changes: 15 additions & 1 deletion Classes/GameLayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,28 @@

@interface GameLayer : Layer
{
AtlasSpriteManager *mgr;
AtlasSpriteManager *sprites;
AtlasSprite *background;
AtlasSprite *bird;
NSMutableArray *platforms;
NSMutableArray *clouds;

LabelAtlas *scoreLabel;

ccVertex2F bird_pos;
ccVertex2F bird_vel;
ccVertex2F bird_acc;

float highestPlatformY;
float platformCurrentMaxStep;

BOOL gameSuspended;
BOOL birdLookingRight;

int score;
}
@property (nonatomic,retain) AtlasSpriteManager *sprites;
@property float highestPlatformY;
@property float platformCurrentMaxStep;

@end
Loading

0 comments on commit 20fd9e4

Please sign in to comment.