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]];
上面的新代码在玩家试图放置炮塔的时候检查是否有足够的金币,如果有,则炮塔被放置并且炮塔的耗费将从可用金币中减去.玩家应该在他们击溃敌人时得到奖励 - 同样在他们杀死敌人时奖励一些金币.
时间: 2024-09-23 12:23:42