cocos2d-iphone之魔塔20层第六部分
今天我们接着第五部分的开始讲,上一章我们让勇士和怪物可以战斗了,但是
我们会发现一个问题就是勇士的血量减少了,但是右面的生命值没有变化。
下面我们就开始添加这些标签的更新方法,让它们随着进度变化。
这些游戏数据的更新都是在Herohp这个类中进行的,需要添加的代码:
Herohp.h要添加代码
if (value) { int hp = [value intValue]; _hero.HP += hp; [herohp updateHeroHp]; } if (value1) { int attack = [value1 intValue]; _hero.Attack +=attack; [herohp updateHeroAttack]; } if (value2) { int defense = [value2 intValue]; _hero.Defense +=defense; [herohp updateHeroDefense]; } if (value3) { int key = [value3 intValue]; switch (key) { case 1: herohp.YellowKey ++; break; case 2: herohp.BlueKey ++; break; case 3: herohp.RedKey ++; break; case 4: herohp.YellowKey ++; herohp.BlueKey ++; herohp.RedKey ++; break; default: break; } [herohp updateKey1]; } if (value4) { } if (value5) { } if (value6) { _hero.HP *= 2; [herohp updateHeroHp]; } if (value7) { _hero.HP *= 1.3; _hero.Attack *= 1.3; _hero.Defense *= 1.3; [herohp updateHeroHp]; [herohp updateHeroAttack]; [herohp updateHeroDefense]; } if (value8) { int grade = [value8 intValue]; _hero.HP += 1000*grade; _hero.Attack += 7*grade; _hero.Defense += 7*grade; herohp.Grade += grade; [herohp updateGrade]; [herohp updateHeroHp]; [herohp updateHeroAttack]; [herohp updateHeroDefense]; } if (value9) { int coin = [value9 intValue]; herohp.Coin += coin; [herohp updateCoin]; }
这样我们的勇士就可以“吃”到各种道具了运行一下
游戏截图:
我们的勇士在打斗的时候是不能进行操作的所以我们要在creatFightScene方法中添加
_hero.isFighting =YES;
并在打斗结束时赋值为NO
下面我们要添加钥匙的使用和开门动画,在if(door_tileGid)中添加
//消除已开门-(void)removeDoor{ _hero.isFighting = NO; canmove = YES; [self.curtitleMap.door removeTileAt:towerLoc];}
到这里我们的游戏也算有模有样了,但是我要说了是我们的游戏制作仅仅是刚开始,连着写了
三天,有点累了,今天就先到这里明天再继续我们的游戏制作