Cocos2D:塔防游戏制作之旅(十七)

前端之家收集整理的这篇文章主要介绍了Cocos2D:塔防游戏制作之旅(十七)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

getHpDamage方法当敌人到达基地时被调用.你需要添加方法到Enemy.m的update:方法中去,以便检查当敌人到达基地是会发生什么.幸运的是,你已经在之前的代码中实现这些了,你可以接着往下走了! ;]

编译运行游戏,但是这次控制住你即将扣动扳机的手指让敌人抵达你的基地吧.

你将看到玩家生命在减少,直到游戏结束.

欧拉,肥猫(你怎么知道我是肥猫? 猫猪注),是时候限制金币供给了.

大多数游戏被实现为”零和(zero-sum)”型的特性,赋予每个塔一定消费并且限制玩家的资源.你的app将实现一个类似的模型,但是以一种非常简单的形式.

打开HelloWorldLayer.h文件并且添加以下实例变量:

int playerGold;
CCLabelBMFont *ui_gold_lbl;

就像你在生命特性中做过的那样,添加一个变量和标签去跟踪金币的显示.同样添加一个新的方法定义如下:

-(void)awardGold:(int)gold;

下面在HelloWorldLayer.m中实现这个方法:

//Add the following method
-(void)awardGold:(int)gold {
    playerGold += gold;
    [ui_gold_lbl setString:[NSString stringWithFormat:@"GOLD: %d",playerGold]];
}

// Add at the end of init:
// 8 - Gold
playerGold = 1000;        
ui_gold_lbl = [CCLabelBMFont labelWithString:[NSString stringWithFormat:@"GOLD: %d",playerGold] 
                                     fntFile:@"font_red_14.fnt"];
[self addChild:ui_gold_lbl z:10];
[ui_gold_lbl setPosition:ccp(135,winSize.height-12)];
[ui_gold_lbl setAnchorPoint:ccp(0,0.5)];

//Replace canBuyTower method with the following:
-(BOOL)canBuyTower {
    if (playerGold - kTOWER_COST >=0)
        return YES;
    return NO;
}

// In ccTouchesBegan,add the following lines inside the if statement,
// where you commented that we would spend our gold later:
playerGold -= kTOWER_COST;
[ui_gold_lbl setString:[NSString stringWithFormat:@"GOLD: %d",playerGold]];

上面的新代码在玩家试图放置炮塔的时候检查是否有足够的金币,如果有,则炮塔被放置并且炮塔的耗费将从可用金币中减去.玩家应该在他们击溃敌人时得到奖励 - 同样在他们杀死敌人时奖励一些金币.

猜你在找的Cocos2d-x相关文章