C語言一網(wǎng)打盡:拼圖切圖,推箱子米奸、坦克游戲界面昼接,批量導(dǎo)入技術(shù),視頻講解加源碼解析

C語言一網(wǎng)打盡:拼圖切圖悴晰,推箱子慢睡、坦克游戲界面,批量導(dǎo)入技術(shù)铡溪,資質(zhì)準備

1.二位數(shù)組

2.貼圖技術(shù)

3.sprintf函數(shù)

4.相關(guān)素材

視頻講解:



undefined_騰訊視頻

拼圖切圖

原圖:

切割后:

源碼:

#include

#include

#include

/*

1.定義圖片變量 IMAGE ---int

2.loadimage加載資源 ---把圖片放到變量里面

3.putimage 把圖片粘貼窗口上

//切割技術(shù):隨機切割---拼圖游戲----圖片處理之類

*/

IMAGE mm;

int array2D[3][3] = { 0 };

int array1D[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

int pos;

int length=9; //值沒有初始化

void loadResource()

{

loadimage(&mm, "美女.jpg",900, 900);

//隨機初始化

for (int i = 0; i < 3; i++)

{

for (int j = 0; j < 3; j++)

{

//產(chǎn)生一個隨機下標(biāo)

pos = rand() % length;//值沒有初始化

array2D[i][j] = array1D[pos];

//調(diào)整數(shù)組

for (int k = pos; k < length; k++)

{

array1D[k] = array1D[k + 1];

}

length--;

}

}

}

void userUI()

{

for (int i = 0; i < 3; i++)

{

for (int j = 0; j < 3; j++)

{

if (array2D[i][j] < 4)

{

putimage(j * 300, i * 300, 300, 300, &mm, (array2D[i][j] - 1) * 300, 0);

}

else if (array2D[i][j]>6)

{

putimage(j * 300, i * 300, 300, 300, &mm, (array2D[i][j] - 7) * 300,600);

}

else

{

putimage(j * 300, i * 300, 300, 300, &mm, (array2D[i][j] - 4) * 300,300);

}

}

}

}

int main()

{

//格式和路徑

initgraph(900, 900);

srand((unsigned int)time(NULL));

loadResource();

userUI();

getchar();

closegraph();

return 0;

}

推箱子漂辐、坦克游戲界面

推箱子:

#include

#include

#include

/*

1.定義圖片變量 IMAGE ---int

2.loadimage加載資源 ---把圖片放到變量里面

3.putimage 把圖片粘貼窗口上

//切割技術(shù):隨機切割---拼圖游戲----圖片處理之類

*/

IMAGE mm;

int array2D[3][3] = { 0 };

int array1D[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

int pos;

int length=9; //值沒有初始化

void loadResource()

{

loadimage(&mm, "美女.jpg",900, 900);

//隨機初始化

for (int i = 0; i < 3; i++)

{

for (int j = 0; j < 3; j++)

{

//產(chǎn)生一個隨機下標(biāo)

pos = rand() % length;//值沒有初始化

array2D[i][j] = array1D[pos];

//調(diào)整數(shù)組

for (int k = pos; k < length; k++)

{

array1D[k] = array1D[k + 1];

}

length--;

}

}

}

void userUI()

{

for (int i = 0; i < 3; i++)

{

for (int j = 0; j < 3; j++)

{

if (array2D[i][j] < 4)

{

putimage(j * 300, i * 300, 300, 300, &mm, (array2D[i][j] - 1) * 300, 0);

}

else if (array2D[i][j]>6)

{

putimage(j * 300, i * 300, 300, 300, &mm, (array2D[i][j] - 7) * 300,600);

}

else

{

putimage(j * 300, i * 300, 300, 300, &mm, (array2D[i][j] - 4) * 300,300);

}

}

}

}

int main()

{

//格式和路徑

initgraph(900, 900);

srand((unsigned int)time(NULL));

loadResource();

userUI();

getchar();

closegraph();

return 0;

}

坦克大戰(zhàn)游戲地圖:

#define _CRT_SECURE_NO_WARNINGS //去掉內(nèi)擴增問題---宏定義 scanf_s sprintf_s fscanf_s _getch();

#include

#include

const int rows = 12, cols = 13;

void instanceUI()

{

int mapIndex[rows][cols] =

{ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,

2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,

2, 3, 2, 3, 2, 3, 1, 3, 2, 3, 2, 3, 2,

2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

1, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 1,

2, 3, 2, 3, 2, 3, 3, 3, 2, 3, 2, 3, 2,

2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,

2, 3, 3, 3, 2, 2, 2, 2, 2, 3, 2, 3, 2,

2, 3, 2, 3, 2, 3, 3, 3, 2, 3, 2, 3, 2,

2, 2, 2, 2, 2, 3, 0, 3, 2, 2, 2, 2, 2 };

//0 表示大鳥 1表示銀塊 2:黑色空地 3:磚頭

//mapIndex[rows][cols] : 0-----3

//IMAGE map[4]; 0-----3

// map[0] map[1] map[2] map[3]

IMAGE map[4];

char filename[20] = "";

for (int i = 0; i < 4; i++)

{

sprintf(filename, "map%d.jpg", i);

loadimage(&map[i], filename);

}

int x, y;

for (int rowNum = 0; rowNum < rows; rowNum++)

{

for (int colNum = 0; colNum < cols; colNum++)

{

x = colNum * 50;

y = rowNum * 50;

//根據(jù)數(shù)組的值貼圖

//圖片編號和數(shù)組中的值得關(guān)系

putimage(x, y, &map[mapIndex[rowNum][colNum]]);

}

}

}

int main()

{

initgraph(cols * 50, rows * 50);

instanceUI();

getchar();

closegraph();

return 0;

}

批量導(dǎo)入技術(shù)

#define _CRT_SECURE_NO_WARNINGS //去掉內(nèi)擴增問題---宏定義 scanf_s sprintf_s fscanf_s _getch();

#include

#include

#include

#pragma comment(lib,"winmm.lib")

IMAGE map[521];

void loadResource()

{

//學(xué)正確編程思想+走正確學(xué)習(xí)C/C++道路

//編寫不一樣的精彩

for (int i = 0; i <= 520; i++)

{

char filename[20] = ""; //定義一個字符數(shù)組

if (i < 10)

sprintf(filename, "Resource\000%d.bmp", i);

else if (i >= 10 && i < 100)

sprintf(filename, "Resource\00%d.bmp", i);

else if (i >= 100)

sprintf(filename, "Resource\0%d.bmp", i);

else

break;

loadimage(&map[i], filename, 650, 360);

}

}

int main()

{

initgraph(650, 360);

loadResource();

int i = 0;

mciSendString("open 1.mp3 alias music", 0, 0, 0);

mciSendString("play music repeat", 0, 0, 0);

while (1)

{

Sleep(50);

if (i == 521)

i = 0;

putimage(0, 0, &map[i]);

i++;

}

getchar();

return 0;

}

最后附加相關(guān)視頻講解:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市棕硫,隨后出現(xiàn)的幾起案子髓涯,更是在濱河造成了極大的恐慌,老刑警劉巖哈扮,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纬纪,死亡現(xiàn)場離奇詭異,居然都是意外死亡灶泵,警方通過查閱死者的電腦和手機育八,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赦邻,“玉大人髓棋,你說我怎么就攤上這事』讨蓿” “怎么了按声?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恬吕。 經(jīng)常有香客問我签则,道長,這世上最難降的妖魔是什么铐料? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任渐裂,我火速辦了婚禮,結(jié)果婚禮上钠惩,老公的妹妹穿的比我還像新娘柒凉。我一直安慰自己,他們只是感情好篓跛,可當(dāng)我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布膝捞。 她就那樣靜靜地躺著,像睡著了一般愧沟。 火紅的嫁衣襯著肌膚如雪蔬咬。 梳的紋絲不亂的頭發(fā)上鲤遥,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機與錄音林艘,去河邊找鬼盖奈。 笑死,一個胖子當(dāng)著我的面吹牛北启,可吹牛的內(nèi)容都是我干的卜朗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼咕村,長吁一口氣:“原來是場噩夢啊……” “哼场钉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起懈涛,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤逛万,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后批钠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宇植,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年埋心,在試婚紗的時候發(fā)現(xiàn)自己被綠了指郁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡拷呆,死狀恐怖闲坎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茬斧,我是刑警寧澤腰懂,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站项秉,受9級特大地震影響绣溜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜娄蔼,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一怖喻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岁诉,春花似錦罢防、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽野建。三九已至属划,卻和暖如春恬叹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背同眯。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工绽昼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像授霸,于是被迫代替她去往敵國和親倍宾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容