我的總結

任務

個人任務是完成全部代碼的拼接以及遊戲主體的實現函數

思路設計

遊戲主體的實現:利用鍵盤輸入的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

相關文章
相關標籤/搜索