个人任务是完成全部代码的拼接以及游戏主体的实现函数
游戏主体的实现:利用键盘输入的wsad
以及上下左右来控制双方英雄的移动。当两个英雄的坐标位置在各自的四面八方的时候,双方自动攻击 ,自动掉血。防护塔和英雄间的机制和英雄与英雄间的机制同样。当英雄死亡后,10s后自动复活。英雄每秒可得到20经验,升级可得到技能。设计
void drawinfor() // 用于输出当前英雄,防护塔的血量, { Set_mouse(10, 10); cout<<hero1[0]->name<<" : "; cout<<hero1[0]->HP<<" ";//hero1[0],hero1[1]分别为选中的两个英雄 Set_mouse(10, 20); cout<<hero1[1]->name<<" : "; cout<<hero1[1]->HP<<" "; Set_mouse(30, 10); cout<<p1.name<<" : "; cout<<p1.HP<<" "; Set_mouse(30, 20); cout<<p2.name<<" : "; cout<<p2.HP<<" "; }
void attack() { if((hero1[0]->x==hero1[1]->x-1)){//英雄间的攻击 if((hero1[0]->y==hero1[0]->y+1)||(hero1[0]->y==hero1[0]->y)||(hero1[0]->y==hero1[0]->y-1)) { hero1[0]->Attack(*hero1[1]); hero1[1]->Attack(*hero1[0]); } } else if(hero1[0]->x==hero1[1]->x+1){ if((hero1[0]->y==hero1[0]->y+1)||(hero1[0]->y==hero1[0]->y)||(hero1[0]->y==hero1[0]->y-1)) { hero1[0]->Attack(*hero1[1]); hero1[1]->Attack(*hero1[0]); } } p1.attack_action(*hero1[1]);//防护塔的攻击 p2.attack_action(*hero1[0]); s1.recovery(*hero1[1]);// 泉水的回血 s2.recovery(*hero1[0]); }
// 控制英雄的移动。 void input() { char move1=0,move2=0; if(kbhit()) { move1=getch(); if(move1>90) { move2=move1; move1=0; } } move(move1,move2); }
代码的拼接一开始我觉得很简单,只要互相调用来调用去就OK了。结果在你们完成任务以后,我发现函数参数和本身想的不太同样。我才意识到当初在商讨的时候并无具体到统一接口,致使我在代码结合的时,不得不从新本身修改代码间的接口。又是第一次作这种小项目,在这个方面花了很多时间。code