[置顶] ios 水果连连看游戏源码

时间:2024-09-07 22:04:38

原创文章,转载请注明出处:http://blog.****.net/donny_zhang/article/details/9251917

demo功能:水果连连看游戏源码。iphone6.1 测试通过。功能是清除屏幕上的所有的水果,并尝试每个关卡上获得更高的分数。包括“开始游戏”,“继续游戏”,“游戏中暂停”等功能。

demo说明:基于cocos2d 写的水果连连看游戏源码。cocos2d介绍

demo截屏:

[置顶] ios 水果连连看游戏源码

[置顶] ios 水果连连看游戏源码

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.****.net/detail/donny_zhang/5706237