您好,登錄后才能下訂單哦!
小編給大家分享一下C語言魔塔游戲怎么實現,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
游戲截圖:
編譯環境: VS2017
游戲需要一些圖片,如果有想要的或者對游戲有什么看法的可以加我的QQ 2985486630 討論,如果暫時沒有回應,可以在博客下方留言,到時候我會看到。覺得麻煩的直接下載C-mota_jb51.rar
解壓后點擊sln文件直接可以運行
下面我來介紹一下游戲的主要功能和實現方式
首先是玩家的定義,使用結構體,這個名字是可以自己改變的
struct gamerole { char name[20] = "黑蛋"; //玩家名字 int HP; //血量 int MP; int DEF; //防御 int ATT; //攻擊 int Lv; //等級 int Exp; //經驗 int Num_Blue_Key; //藍鑰匙數量 int Num_Yellow_Key; }player;
在游戲的右邊顯示任務的各項屬性
函數:
void SetPlayer() { putimage(60 * 13, 0, &Message); outtextxy(60 * 13 + 12, 100, player.name); outtextxy(60 * 13 + 12, 180, intToString(player.Lv)); outtextxy(60 * 13 + 12, 235, intToString(player.Exp)); outtextxy(60 * 13 + 12, 362, intToString(player.HP)); outtextxy(60 * 13 + 12, 425, intToString(player.MP)); outtextxy(60 * 13 + 12, 517, intToString(player.ATT)); outtextxy(60 * 13 + 12, 567, intToString(player.DEF)); outtextxy(60 * 13 + 12, 689, intToString(player.Num_Yellow_Key)); outtextxy(60 * 13 + 12, 759, intToString(player.Num_Blue_Key)); }
由于這個函數要求屬性必須是字符串,所以我寫了一個把數字轉化成字符串的函數
//整數轉換為字符 char *intToString(int Number) { int len = 0; if (Number == 0) { str[0] = '0'; len++; } while (Number) { str[len++] = Number % 10+'0'; Number /= 10; } for (int i = 0; i < len/2; i++) { char t = str[i]; str[i] = str[len - i - 1]; str[len - i - 1] = t; } str[len] = '\0'; return str; }
怪物屬性的定義
struct monster { int HP; //血量 int ATT; //攻擊 int DEF; //防御 int Exp; //經驗 };
接下來就是定義畫布,然后加載圖片,我用一個二維數組存下了地圖,不同的數字代表不同的圖片,然后根據二維數組的值把不同的地方貼上不同的圖片。
void SetMap() { for (int i = 0; i < 13; i++) { for (int j = 0; j < 13; j++) { switch (map[i][j]) { case 0: putimage(j * 60, i * 60, &Wall); //墻 break; case 1: putimage(j * 60, i * 60, &Ground); //地板 break; case 2: putimage(j * 60, i * 60, &Blue_door); //藍門 break; case 3: putimage(j * 60, i * 60, &Yellow_door); //黃門 break; case 4: putimage(j * 60, i * 60, &Blue_Cry); //藍水晶 break; case 5: putimage(j * 60, i * 60, &Red_Cry); //紅水晶 break; case 6: putimage(j * 60, i * 60, &Blue_Key); //藍鑰匙 break; case 7: putimage(j * 60, i * 60, &Yellow_Key); //黃鑰匙 break; case 8: putimage(j * 60, i * 60, &Red_Med); //紅藥水 break; case 9: putimage(j * 60, i * 60, &Blue_Med); //藍藥水 break; case 10: putimage(j * 60, i * 60, &Small_Bat); //小蝙蝠 break; case 11: putimage(j * 60, i * 60, &Small_Wizard); //小巫師 break; case 12: putimage(j * 60, i * 60, &Small_Skull); //小骷髏 break; case 13: putimage(j * 60, i * 60, &Big_Skull); //大骷髏 break; case 14: putimage(j * 60, i * 60, &Green_Slime); //綠史萊姆 break; case 15: putimage(j * 60, i * 60, &Red_Slime); //紅史萊姆 break; case 98: putimage(j * 60, i * 60, &Ladder); //梯子 break; case 99: putimage(j * 60, i * 60, &Player); //玩家 break; } } } }
接下來就是人物的移動和戰斗了,人物的移動我就是直接對上下左右四種情況分別討論, 在人物走動的時候要判斷能不能走,不能走就不處理,如果能走,就把走到的那個位置上變成人,把之前人的位置變成地板。
case 'w': case 72: if (map[playerx - 1][playery] == 1) { //下一步是地板 map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; }
需要處理的就是鑰匙,門, 水晶, 藥水, 怪物。
如果是鑰匙,把對應的鑰匙數量加1。
如果是門,判斷一下對應顏色的鑰匙是否足夠,如果足夠,鑰匙數量減1,然后把對應位置上的門變為空地。
如果是藥水,吃了之后會增加生命。
如果是水晶,根據水晶的顏色加對應的屬性。
當遇到怪物的時候回產生戰斗,對于不同的怪物分開處理,下面是小蝙蝠的處理
case 10: ID = MessageBox(hwnd, "小蝙蝠", "是否攻擊?", MB_YESNO); if (ID == IDYES) { if (VS(player.HP, player.ATT, player.DEF, Small_Bat_Pro.HP, Small_Bat_Pro.ATT, Small_Bat_Pro.DEF)) { player.Exp += Small_Bat_Pro.Exp; return 1; } } break;
遇到怪物是會彈出對應的對話框
此處有一個VS函數,用于計算戰斗是否成功,如果成功,會加相應的屬性,如果失敗,則會彈出打不過的窗口。
int VS(int playHP, int playATT, int playDEF, int monHP, int monATT, int monDEF) { while (playHP > 0 || monHP > 0) { monHP -= (playATT - monDEF); if (monHP < 0) break; playHP -= (monATT - playDEF); } if (playHP > 0) { player.HP = playHP; return 1; } else { MessageBox(hwnd, "", "打不過", MB_YESNO); return 0; } }
在每一次敲擊鍵盤后更新地圖信息和人物信息 :
SetMap(); //重新顯示地圖 SetPlayer(); //重新顯示角色信息
到了這里,游戲的內容也就說的差不多了,雖然我只寫出了第一個地圖。但是,只要添加地圖即可有更多的玩法,有興趣的同學可以自制關卡,實現更多內容。
最后,加上所有代碼,注釋上說的也比較清楚。
#include <stdlib.h> #include <graphics.h> #include <windows.h> #include<conio.h> #include<graphics.h> #include<windows.h> #include <stdio.h> void initgamePicture(); //加載游戲圖片 void SetPlayer(); //顯示角色信息 void initPlayer(); //初始化游戲角色 void SetMap(); //加載游戲地圖 char *intToString(int Number); //把整數轉化成字符串 void playGame(); //開始游戲 int Combat(int x); int VS(int playHP, int playATT, int playDEF, int monHP, int monATT, int monDEF); int playerx, playery; char str[20] = ""; //地圖1 int map[13][13] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 98, 1, 14, 15, 14, 1, 1, 1, 1, 1, 1, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, { 0, 8, 1, 1, 2, 1, 0, 5, 6, 1, 0, 1, 0 }, { 0, 1, 12, 1, 0, 1, 0, 4, 8, 1, 0, 1, 0 }, { 0, 0, 2, 0, 0, 1, 0, 0, 0, 14, 0, 1, 0 }, { 0, 6, 1, 1, 0, 1, 3, 10, 11, 10, 0, 1, 0 }, { 0, 1, 13, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0 }, { 0, 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0 }, { 0, 1, 1, 1, 0, 0, 14, 0, 0, 0, 14, 0, 0 }, { 0, 8, 1, 6, 0, 7, 1, 6, 0, 1, 10, 1, 0 }, { 0, 8, 1, 6, 0, 1, 99, 1, 0, 14, 9, 14, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; IMAGE Wall, Ground, Green_Slime, Red_Slime, Blue_Cry, Red_Cry, Blue_Key, Yellow_Key, Red_Med, Blue_Med, Ladder, Small_Skull, Big_Skull, Small_Bat, Small_Wizard, Blue_door, Yellow_door, Player, Message; HWND hwnd; struct gamerole { char name[20] = "黑蛋"; //玩家名字 int HP; //血量 int MP; int DEF; //防御 int ATT; //攻擊 int Lv; //等級 int Exp; //經驗 int Num_Blue_Key; //藍鑰匙數量 int Num_Yellow_Key; }player; struct monster { int HP; //血量 int ATT; //攻擊 int DEF; //防御 int Exp; //經驗 }; struct monster Green_Slime_Pro = { 50,10,12,100 }; //綠史萊姆屬性 struct monster Red_Slime_Pro = { 100, 50, 12, 500 }; //紅史萊姆屬性 struct monster Small_Wizard_Pro = { 100, 30, 9, 400 };//小巫師屬性 struct monster Small_Bat_Pro = { 20, 10, 9, 50 }; //小蝙蝠屬性 struct monster Small_Skull_Pro = {30, 20, 10, 200}; //小骷髏屬性 struct monster Big_Skull_Pro = {60, 50, 25, 300}; //大骷髏屬性 int main() { initPlayer(); hwnd = initgraph(60 * 14, 60 * 13); initgamePicture(); while (1) { SetMap(); SetPlayer(); playGame(); } return 0; } /* *顯示角色信息 */ void SetPlayer() { putimage(60 * 13, 0, &Message); outtextxy(60 * 13 + 12, 100, player.name); outtextxy(60 * 13 + 12, 180, intToString(player.Lv)); outtextxy(60 * 13 + 12, 235, intToString(player.Exp)); outtextxy(60 * 13 + 12, 362, intToString(player.HP)); outtextxy(60 * 13 + 12, 425, intToString(player.MP)); outtextxy(60 * 13 + 12, 517, intToString(player.ATT)); outtextxy(60 * 13 + 12, 567, intToString(player.DEF)); outtextxy(60 * 13 + 12, 689, intToString(player.Num_Yellow_Key)); outtextxy(60 * 13 + 12, 759, intToString(player.Num_Blue_Key)); } /* * 加載游戲圖片 */ void initgamePicture() { loadimage(&Wall, "墻.jpg", 60, 60); loadimage(&Ground, "地板.jpg", 60, 60); loadimage(&Green_Slime, "綠史萊姆.jpg", 60, 60); loadimage(&Red_Slime, "紅史萊姆.jpg", 60, 60); loadimage(&Blue_Cry, "藍水晶.jpg", 60, 60); loadimage(&Red_Cry, "紅水晶.jpg", 60, 60); loadimage(&Blue_Key, "藍鑰匙.jpg", 60, 60); loadimage(&Yellow_Key, "黃鑰匙.jpg", 60, 60); loadimage(&Red_Med, "小紅藥水.jpg", 60, 60); loadimage(&Blue_Med, "小藍藥水.jpg", 60, 60); loadimage(&Ladder, "梯子.jpg", 60, 60); loadimage(&Small_Bat, "小蝙蝠.jpg", 60, 60); loadimage(&Small_Wizard, "小巫師.jpg", 60, 60); loadimage(&Small_Skull, "骷髏兵.jpg", 60, 60); loadimage(&Big_Skull, "大骷髏兵.jpg", 60, 60); loadimage(&Blue_door, "藍門.jpg", 60, 60); loadimage(&Yellow_door, "黃門.jpg", 60, 60); loadimage(&Player, "人.jpg", 60, 60); loadimage(&Message, "info.jpg"); } /* *初始化游戲角色 */ void initPlayer() { player.Lv = 0; player.ATT = 50; player.DEF = 50; player.Num_Blue_Key = 0; player.Num_Yellow_Key = 0; player.HP = 500; player.MP = 250; player.Exp = 0; playerx = 11; playery = 6; } //整數轉換為字符 char *intToString(int Number) { int len = 0; if (Number == 0) { str[0] = '0'; len++; } while (Number) { str[len++] = Number % 10+'0'; Number /= 10; } for (int i = 0; i < len/2; i++) { char t = str[i]; str[i] = str[len - i - 1]; str[len - i - 1] = t; } str[len] = '\0'; return str; } /* *加載游戲地圖 * */ void SetMap() { for (int i = 0; i < 13; i++) { for (int j = 0; j < 13; j++) { switch (map[i][j]) { case 0: putimage(j * 60, i * 60, &Wall); //墻 break; case 1: putimage(j * 60, i * 60, &Ground); //地板 break; case 2: putimage(j * 60, i * 60, &Blue_door); //藍門 break; case 3: putimage(j * 60, i * 60, &Yellow_door); //黃門 break; case 4: putimage(j * 60, i * 60, &Blue_Cry); //藍水晶 break; case 5: putimage(j * 60, i * 60, &Red_Cry); //紅水晶 break; case 6: putimage(j * 60, i * 60, &Blue_Key); //藍鑰匙 break; case 7: putimage(j * 60, i * 60, &Yellow_Key); //黃鑰匙 break; case 8: putimage(j * 60, i * 60, &Red_Med); //紅藥水 break; case 9: putimage(j * 60, i * 60, &Blue_Med); //藍藥水 break; case 10: putimage(j * 60, i * 60, &Small_Bat); //小蝙蝠 break; case 11: putimage(j * 60, i * 60, &Small_Wizard); //小巫師 break; case 12: putimage(j * 60, i * 60, &Small_Skull); //小骷髏 break; case 13: putimage(j * 60, i * 60, &Big_Skull); //大骷髏 break; case 14: putimage(j * 60, i * 60, &Green_Slime); //綠史萊姆 break; case 15: putimage(j * 60, i * 60, &Red_Slime); //紅史萊姆 break; case 98: putimage(j * 60, i * 60, &Ladder); //梯子 break; case 99: putimage(j * 60, i * 60, &Player); //玩家 break; } } } } int Combat(int x) { int ID; switch (x) { case 10: ID = MessageBox(hwnd, "小蝙蝠", "是否攻擊?", MB_YESNO); if (ID == IDYES) { if (VS(player.HP, player.ATT, player.DEF, Small_Bat_Pro.HP, Small_Bat_Pro.ATT, Small_Bat_Pro.DEF)) { player.Exp += Small_Bat_Pro.Exp; return 1; } } break; case 11: ID = MessageBox(hwnd, "遇到小巫師", "是否攻擊?", MB_YESNO); if (ID == IDYES) { if (VS(player.HP, player.ATT, player.DEF, Small_Wizard_Pro.HP, Small_Wizard_Pro.ATT, Small_Wizard_Pro.DEF)) { player.Exp += Small_Wizard_Pro.Exp; return 1; } } break; case 12: ID = MessageBox(hwnd, "遇到小骷髏", "是否攻擊?", MB_YESNO); if (ID == IDYES) { if (VS(player.HP, player.ATT, player.DEF, Small_Skull_Pro.HP, Small_Skull_Pro.ATT, Small_Skull_Pro.DEF)) { player.Exp += Small_Skull_Pro.Exp; return 1; } } break; case 13: ID = MessageBox(hwnd, "遇到大骷髏", "是否攻擊?", MB_YESNO); if (ID == IDYES) { if (VS(player.HP, player.ATT, player.DEF, Big_Skull_Pro.HP, Big_Skull_Pro.ATT, Big_Skull_Pro.DEF)) { player.Exp += Big_Skull_Pro.Exp; return 1; } } break; case 14: ID = MessageBox(hwnd, "遇到綠史萊姆", "是否攻擊?", MB_YESNO); if (ID == IDYES) { if (VS(player.HP, player.ATT, player.DEF, Green_Slime_Pro.HP, Green_Slime_Pro.ATT, Green_Slime_Pro.DEF)) { player.Exp += Green_Slime_Pro.Exp; return 1; } } break; case 15: ID = MessageBox(hwnd, "遇到紅史萊姆", "是否攻擊?", MB_YESNO); if (ID == IDYES) { if (VS(player.HP, player.ATT, player.DEF, Red_Slime_Pro.HP, Red_Slime_Pro.HP, Red_Slime_Pro.HP)) { player.Exp += Green_Slime_Pro.Exp; return 1; } } break; } return 0; } int VS(int playHP, int playATT, int playDEF, int monHP, int monATT, int monDEF) { while (playHP > 0 || monHP > 0) { monHP -= (playATT - monDEF); if (monHP < 0) break; playHP -= (monATT - playDEF); } if (playHP > 0) { player.HP = playHP; return 1; } else { MessageBox(hwnd, "", "打不過", MB_YESNO); return 0; } } void playGame() { while (1) { char ch = _getch(); switch (ch) { case 'w': case 72: if (map[playerx - 1][playery] == 1) { //下一步是地板 map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; } else if (map[playerx-1][playery]== 6) { //下一步是藍鑰匙 player.Num_Blue_Key++; map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; } else if (map[playerx - 1][playery] == 7) { //下一步是黃鑰匙 player.Num_Yellow_Key++; map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; } //下一步是怪物 else if (map[playerx - 1][playery] == 10 || map[playerx - 1][playery] == 11 || map[playerx - 1][playery] == 12 || map[playerx - 1][playery] == 13 || map[playerx - 1][playery] == 14 || map[playerx - 1][playery] == 15) { int x = Combat(map[playerx - 1][playery]); if (x == 1) { map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; } } //紅藍藥水 else if (map[playerx - 1][playery] == 8 || map[playerx - 1][playery] == 9) { if (map[playerx - 1][playery] == 8) player.HP += 200; else player.HP += 500; map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; } //紅藍門 else if (map[playerx - 1][playery] == 2 || map[playerx - 1][playery] == 3) { if (map[playerx - 1][playery] == 2 && player.Num_Blue_Key) { player.Num_Blue_Key--; map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; } if (map[playerx - 1][playery] == 3 && player.Num_Yellow_Key) { player.Num_Yellow_Key--; map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; } } //紅藍水晶 //紅水晶+2攻擊 //藍水晶+2防御 else if (map[playerx - 1][playery] == 4 || map[playerx - 1][playery] == 5) { if (map[playerx - 1][playery] == 4) player.DEF += 2; else if (map[playerx - 1][playery] == 5) player.ATT += 2; map[playerx - 1][playery] = 99; map[playerx][playery] = 1; playerx--; } break; case 's': case 80: if (map[playerx + 1][playery] == 1) { //下一步是地板 map[playerx + 1][playery] = 99; map[playerx][playery] = 1; playerx++; } else if (map[playerx + 1][playery] == 6) { //下一步是藍鑰匙 player.Num_Blue_Key++; map[playerx + 1][playery] = 99; map[playerx][playery] = 1; playerx++; } else if (map[playerx + 1][playery] == 7) { //下一步是黃鑰匙 player.Num_Yellow_Key++; map[playerx + 1][playery] = 99; map[playerx][playery] = 1; playerx++; } //下一步是怪物 else if (map[playerx + 1][playery] == 10 || map[playerx + 1][playery] == 11 || map[playerx + 1][playery] == 12 || map[playerx + 1][playery] == 13 || map[playerx + 1][playery] == 14 || map[playerx + 1][playery] == 15) { int x = Combat(map[playerx + 1][playery]); if (x == 1) { map[playerx + 1][playery] = 99; map[playerx][playery] = 1; playerx++; } } //紅藍藥水 else if (map[playerx + 1][playery] == 8 || map[playerx + 1][playery] == 9) { if (map[playerx + 1][playery] == 8) player.HP += 200; else player.HP += 500; map[playerx + 1][playery] = 99; map[playerx][playery] = 1; playerx++; } //紅藍門 else if (map[playerx + 1][playery] == 2 || map[playerx + 1][playery] == 3) { if (map[playerx + 1][playery] == 2 && player.Num_Blue_Key) { player.Num_Blue_Key++; map[playerx + 1][playery] = 99; map[playerx][playery] = 1; playerx++; } if (map[playerx + 1][playery] == 3 && player.Num_Yellow_Key) { player.Num_Yellow_Key++; map[playerx + 1][playery] = 99; map[playerx][playery] = 1; playerx++; } } //紅藍水晶 //紅水晶+2攻擊 //藍水晶+2防御 else if (map[playerx + 1][playery] == 4 || map[playerx + 1][playery] == 5) { if (map[playerx + 1][playery] == 4) player.DEF += 2; else if (map[playerx + 1][playery] == 5) player.ATT += 2; map[playerx + 1][playery] = 99; map[playerx][playery] = 1; playerx++; } break; case 'a': case 75: if (map[playerx][playery - 1] == 1) { //下一步是地板 map[playerx][playery - 1] = 99; map[playerx][playery] = 1; playery--; } else if (map[playerx][playery - 1] == 6) { //下一步是藍鑰匙 player.Num_Blue_Key++; map[playerx][playery - 1] = 99; map[playerx][playery] = 1; playery--; } else if (map[playerx][playery - 1] == 7) { //下一步是黃鑰匙 player.Num_Yellow_Key++; map[playerx][playery - 1] = 99; map[playerx][playery] = 1; playery--; } //下一步是怪物 else if (map[playerx][playery - 1] == 10 || map[playerx][playery - 1] == 11 || map[playerx][playery - 1] == 12 || map[playerx][playery - 1] == 13 || map[playerx][playery - 1] == 14 || map[playerx][playery - 1] == 15) { int x = Combat(map[playerx][playery - 1]); if (x == 1) { map[playerx][playery - 1] = 99; map[playerx][playery] = 1; playery--; } } //紅藍藥水 else if (map[playerx][playery - 1] == 8 || map[playerx][playery - 1] == 9) { if (map[playerx][playery - 1] == 8) player.HP += 200; else player.HP += 500; map[playerx ][playery- 1] = 99; map[playerx][playery] = 1; playery--; } //紅藍門 else if (map[playerx][playery - 1] == 2 || map[playerx][playery - 1] == 3) { if (map[playerx][playery - 1] == 2 && player.Num_Blue_Key) { player.Num_Blue_Key--; map[playerx][playery - 1] = 99; map[playerx][playery] = 1; playery--; } if (map[playerx][playery - 1] == 3 && player.Num_Yellow_Key) { player.Num_Yellow_Key--; map[playerx][playery - 1] = 99; map[playerx][playery] = 1; playery--; } } //紅藍水晶 //紅水晶+2攻擊 //藍水晶+2防御 else if (map[playerx][playery - 1] == 4 || map[playerx][playery - 1] == 5) { if (map[playerx][playery - 1] == 4) player.DEF += 2; else if (map[playerx][playery - 1] == 5) player.ATT += 2; map[playerx][playery - 1] = 99; map[playerx][playery] = 1; playery--; } break; case 'd': case 77: if (map[playerx][playery + 1] == 1) { //下一步是地板 map[playerx][playery + 1] = 99; map[playerx][playery] = 1; playery++; } else if (map[playerx][playery + 1] == 6) { //下一步是藍鑰匙 player.Num_Blue_Key++; map[playerx][playery + 1] = 99; map[playerx][playery] = 1; playery++; } else if (map[playerx][playery + 1] == 7) { //下一步是黃鑰匙 player.Num_Yellow_Key++; map[playerx][playery + 1] = 99; map[playerx][playery] = 1; playery++; } //下一步是怪物 else if (map[playerx][playery + 1] == 10 || map[playerx][playery + 1] == 11 || map[playerx][playery + 1] == 12 || map[playerx][playery + 1] == 13 || map[playerx][playery + 1] == 14 || map[playerx][playery + 1] == 15) { int x = Combat(map[playerx][playery + 1]); if (x == 1) { map[playerx][playery + 1] = 99; map[playerx][playery] = 1; playery++; } } //紅藍藥水 else if (map[playerx][playery + 1] == 8 || map[playerx][playery + 1] == 9) { if (map[playerx][playery + 1] == 8) player.HP += 200; else player.HP += 500; map[playerx][playery + 1] = 99; map[playerx][playery] = 1; playery++; } //紅藍門 else if (map[playerx][playery + 1] == 2 || map[playerx][playery + 1] == 3) { if (map[playerx][playery + 1] == 2 && player.Num_Blue_Key) { player.Num_Blue_Key--; map[playerx][playery + 1] = 99; map[playerx][playery] = 1; playery++; } if (map[playerx][playery + 1] == 3 && player.Num_Yellow_Key) { player.Num_Yellow_Key--; map[playerx][playery + 1] = 99; map[playerx][playery] = 1; playery++; } } //紅藍水晶 //紅水晶+2攻擊 //藍水晶+2防御 else if (map[playerx][playery + 1] == 4 || map[playerx][playery + 1] == 5) { if (map[playerx][playery + 1] == 4) player.DEF += 2; else if (map[playerx][playery + 1] == 5) player.ATT += 2; map[playerx][playery + 1] = 99; map[playerx][playery] = 1; playery++; } break; } SetMap(); //重新顯示地圖 SetPlayer(); //重新顯示角色信息 } }
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用于底層開發,使用C語言可以以簡易的方式編譯、處理低級存儲器。
以上是“C語言魔塔游戲怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。