原创文章,转载请注明出处: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