tft每日頭條

 > 遊戲

 > 什麼遊戲可以練c手

什麼遊戲可以練c手

遊戲 更新时间:2024-10-17 07:06:10

對這方面感興趣想學習C/C 或者正在學習C/C 的同學可以加群:558502932,群内有大量C/C 學習資料,也有大神答疑,大家一起學習交流咯!!

對于正在學習C/C 的同學來說,學了C/C 之後能做什麼這是一個很大的問題。然後就會出現很多迷茫的同學們,有些同學知道學了能作什麼,但是不知道具體該怎麼學,那也開始迷茫了起來。

而我今天就是給大家發送一個福利了,對于正在學習C/C 想去往遊戲方面發展的人來說,一個遊戲的核心部分,就是遊戲的心髒,而怎麼樣才能寫好這個心髒呢?我就來分享一下,我之前一直在更新的夢幻西遊遊戲中的心髒部分,希望能對你們有所幫助咯!

什麼遊戲可以練c手(正在學習CC想要往遊戲方面發展的注意咯)1

在學習C/C 或者想學習C/C 可以加群:558502932

代碼如下:

//-----------------------------------【Game_Main( )函數】--------------------------------------

//描述:遊戲Main函數,遊戲的心髒,處理遊戲大大小小函數的合理調用與運作

//--------------------------------------------------------------------------------------------------

VOID Game_Main(HWND hwnd)

{

wchar_t str[100];

//先在mdc中貼上背景圖

SelectObject(g_bufdc, g_hBackGround);

BitBlt(g_mdc, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, g_bufdc, 0, 0, SRCCOPY);

//下雪效果的繪制

if (!g_bGameOver)//如果遊戲未結束

{

Snow_Paint(); //調用封裝了雪花飛舞粒子效果的函數,模拟下雪場景

}

//顯示對戰消息

SetTextColor(g_mdc, RGB(255, 255, 255));

for (int i = 0; i<g_iTxtNum; i )

TextOut(g_mdc, 20, 410 i * 18, text[i], wcslen(text[i]));

//貼上怪物圖以及顯示怪物血量

if (Boss.NowHp>0)

{

//貼上怪物圖360

SelectObject(g_bufdc, g_hMonsterBitmap);

//BitBlt(g_mdc, 60, 100, 250, 250, g_bufdc, 250, 0, SRCAND);

//BitBlt(g_mdc, 60, 100, 250, 250, g_bufdc, 0, 0, SRCPAINT);

TransparentBlt(g_mdc, 90, 150, 250, 250, g_bufdc, g_Bnum*250, 0, 250, 250, RGB(0, 0, 0));//采用TransparentBlt透明貼圖函數

//顯示怪物血量

swprintf_s(str, L"%d / %d", Boss.NowHp, Boss.MaxHp);

SetTextColor(g_mdc, RGB(255, 10, 10));

TextOut(g_mdc, 155, 345, str, wcslen(str));

g_Bnum ;

if (g_Bnum == 16)

g_Bnum = 0;

}

//貼上玩家圖以及玩家生命值,魔法值的顯示

if (Hero.NowHp>0)

{

//貼上人物圖

SelectObject(g_bufdc, g_hHeroBitmap);

TransparentBlt(g_mdc, 330, 280, 250, 250, g_bufdc, g_Hnum*250, 0, 250, 250, RGB(0, 0, 0));//透明色為RGB(0,0,0)純黑色

//BitBlt(g_mdc, 400, 300, 150, 227, g_bufdc, 150, 0, SRCAND);

//BitBlt(g_mdc, 400, 300, 150, 227, g_bufdc, 0, 0, SRCPAINT);

//顯示血量

swprintf_s(str, L"%d / %d", Hero.NowHp, Hero.MaxHp);

SetTextColor(g_mdc, RGB(255, 10, 10));

TextOut(g_mdc, 436, 500, str, wcslen(str));

//顯示魔法值

swprintf_s(str, L"%d / %d", Hero.NowMp, Hero.MaxMp);

SetTextColor(g_mdc, RGB(10, 10, 255));

TextOut(g_mdc, 450, 515, str, wcslen(str));

g_Hnum ;

if (g_Hnum == 14)

g_Hnum = 0;

}

//判斷遊戲是否結束

if (g_bGameOver)

{

if (Hero.NowHp <= 0) //玩家陣亡,就貼出“GameOver”圖片

{

SelectObject(g_bufdc, g_hGameOver);

BitBlt(g_mdc, 120, 50, 543, 396, g_bufdc, 543, 0, SRCAND);

BitBlt(g_mdc, 120, 50, 543, 396, g_bufdc, 0, 0, SRCPAINT);

}

else //怪物陣亡,就貼出“勝利”圖片

{

SelectObject(g_bufdc, g_hVictory);

TransparentBlt(g_mdc, 240, 195, 294, 147, g_bufdc, 0, 0, 294, 147, RGB(0, 0, 0));//透明色為RGB(0,0,0)

}

}

//如果遊戲沒結束,且為玩家可攻擊狀态,便依次貼上技能圖标

else if (!g_bCanAttack)//貼上技能按鈕

{

SelectObject(g_bufdc, g_hSkillButton1);

BitBlt(g_mdc, 590, 200, 40, 40, g_bufdc, 0, 0, SRCCOPY);

SelectObject(g_bufdc, g_hSkillButton2);

BitBlt(g_mdc, 590, 250, 40, 40, g_bufdc, 0, 0, SRCCOPY);

SelectObject(g_bufdc, g_hSkillButton3);

BitBlt(g_mdc, 590, 300, 40, 40, g_bufdc, 0, 0, SRCCOPY);

SelectObject(g_bufdc, g_hSkillButton4);

BitBlt(g_mdc, 590, 350, 40, 40, g_bufdc, 0, 0, SRCCOPY);

}

//遊戲沒結束,且為玩家不可攻擊狀态,便開始接下來的繪圖

else

{

g_iFrameNum ;

//想要學習C/C 或者對這方面感興趣可以加群:558502932,大家一起學習交流。

//第5~10個畫面時顯示玩家攻擊效果圖

if (g_iFrameNum >= 5 && g_iFrameNum <= 10)

{

//第5個畫面時根據之前的輸入計算出遊戲邏輯并進行消息顯示

if (g_iFrameNum == 5)

{

HeroAction_Logic();

Die_Check(Boss.NowHp, false);

}

//根據人物的動作類型進行相應貼圖

HeroAction_Paint();

}

//第15個畫面時判斷怪物進行哪項動作

if (g_iFrameNum == 15)

{

BossAction_Logic();

}

//第26~30個畫面時顯示怪物攻擊圖标

if (g_iFrameNum >= 26 && g_iFrameNum <= 30)

{

BossAction_Paint();

}

if (g_iFrameNum == 30)//回合結束

{

g_bCanAttack = false;

g_iFrameNum = 0;

//每回合的魔法自然恢複,6點固定值加上0到智力值之間的一個随機值的三倍

if (!g_bGameOver)

{

int MpRecover = 2 * (rand() % Hero.Intelligence) 6;

Hero.NowMp = MpRecover;

if (Hero.NowMp >= Hero.MaxMp)

{

Hero.NowMp = Hero.MaxMp;

}

swprintf_s(str, L"回合結束,自動恢複了【%d】點魔法值", MpRecover);

Message_Insert(str);

}

}

}

//将mdc中的全部内容貼到hdc中

BitBlt(g_hdc, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, g_mdc, 0, 0, SRCCOPY);

g_tPre = GetTickCount(); //記錄此次繪圖時間

}

以上,就是今天的遊戲内容核心的全部内容辣!!希望能對你們有所幫助。不喜勿噴

想要學習C/C 或者正在學習C/C 可以加群:558502932,群内有大量C/C 學習資料,大家一起學習交流咯!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关遊戲资讯推荐

热门遊戲资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved