原创文章,转载请注明出处:http://blog.csdn.net/donny_zhang/article/details/9251917
demo功能:水果连连看游戏源码。iphone6.1 测试通过。功能是清除屏幕上的所有的水果,并尝试每个关卡上获得更高的分数。包括“开始游戏”,“继续游戏”,“游戏中暂停”等功能。
demo说明:基于cocos2d 写的水果连连看游戏源码。cocos2d介绍
demo截屏:
demo主要代码: 主游戏窗口view
#import "PlayLayer.h"extern CCLabel * ccLP(NSString * value, float fontSize, CGPoint pos);
@interface PlayLayer ()
-(void) initBallsSprite;
-(void) initNumberLabel;
-(void) initMenu;
-(void) showStartHint;
-(void) startHintCallback: (id) sender;
-(void) goNextLevel;
@end@implementation PlayLayer#pragma mark init part
-(id) init {if( (self=[super init] )) {game = [[Game alloc] init];chart = [[Chart alloc] initWith: [game level]];Skill *bombSkill = [[Bomb alloc] initWithChart:chart linkDelegate:self];Skill *suffleSkill = [[Suffle alloc] initWithChart:chart linkDelegate:self];game.bombSkill = bombSkill;game.suffleSkill = suffleSkill;[game setState: GameStatePrepare];startHintIndex = 0;startHintArray = [NSArray arrayWithObjects:[NSString stringWithFormat:@"Level %d",[game.level no]],@"Ready",@"Go",nil];[startHintArray retain];self.isTouchEnabled = NO;[self initBallsSprite];[self initNumberLabel];[self initMenu];}return self;
}-(void) initBallsSprite{for (int y=0; y<kRowCount; y++) {for (int x=0; x<kColumnCount; x++) {Tile *tile = [chart get: ccp(x,y)];int posX = (x-1)*kTileSize + kLeftPadding + kTileSize/2;int posY = (y-1)*kTileSize + kTopPadding + kTileSize/2;if (tile.kind < 0) {continue;}NSString *imageName = [NSString stringWithFormat: @"q%d.png", tile.kind];tile.sprite = [CCSprite spriteWithFile:imageName];tile.sprite.scaleX = kDefaultScaleX;tile.sprite.scaleY = kDefaultScaleY;tile.sprite.position = ccp(posX, posY);[self addChild: tile.sprite z: 3];}}
}-(void) initNumberLabel{{CCLabel *scoreValueLabel = ccLP(@"0", 28.0f, ccp(50,225));[self addChild: scoreValueLabel z:1 tag:kScoreLabelTag]; }{int time = [game.level timeLimit];NSString *timeValueString = [NSString stringWithFormat: @"%d", time];CCLabel *timeValueLabel = ccLP(timeValueString, 28.0f, ccp(50,275));[self addChild: timeValueLabel z:1 tag:kTimeLabelTag];}{ CCLabel *timeLabel = ccLP(@"time", 28.0f, ccp(50,300));[self addChild:timeLabel];}{CCLabel *scoreLabel = ccLP(@"score", 28.0f, ccp(50,250));[self addChild:scoreLabel];}}-(void) initMenu{CCMenuItemFont *bombItem = [CCMenuItemFont itemFromString:@"Bomb" target:game.bombSkill selector: @selector(run:)];CCMenuItemFont *suffleItem = [CCMenuItemFont itemFromString:@"Suffle" target:game.suffleSkill selector: @selector(run:)];CCMenuItemFont *stopItem = [CCMenuItemFont itemFromString:@"Pause" target:self selector: @selector(goPause:)];game.bombSkill.assItem = bombItem;game.suffleSkill.assItem = suffleItem;CCMenu *menu = [CCMenu menuWithItems:bombItem, suffleItem, stopItem, nil];[menu alignItemsVerticallyWithPadding: -1];menu.position = ccp(-100,65);[self addChild:menu z: 2 tag: kMenuTag];
}-(void) goPause: (id) sender{[SceneManager goPause];
}
demo下载地址:http://download.csdn.net/detail/donny_zhang/5706237