激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

c語言能開發(fā)什么樣的游戲(C語言開發(fā):如何用130行代碼,寫出"超火"微信小游戲)

發(fā)布時間:2023-11-27 00:09:29 瀏覽量:115次

?C語言開發(fā):如何用130行代碼,寫出"超火"微信小游戲

c語言能開發(fā)什么樣的游戲(C語言開發(fā):如何用130行代碼,寫出"超火"微信小游戲)

近日,一款名為“羊了個羊”微信小游戲火爆全網。

憑借簡單玩法和不走尋常路的關卡設置,三消小游戲《羊了個羊》,成為《合成大西瓜》《召喚神龍》后的小微游戲新王者。

“其實游戲很簡單,就是湊齊三個一樣的圖案就能點擊消除,湊不齊三個的圖案先放在底部的七個待選欄位里,如果七個槽位都占滿了,游戲就失敗了。”游戲第一關其實是玩法教程,但當玩家來到第二關時,難度直線上升。根據(jù)官方介紹,“羊了個羊”是一款超難的闖關消除小游戲,通關率不到0.1%。

當然,我們這次可不是為了針對“羊了個羊”的玩法開發(fā)出游戲輔助這類的東西,而是說,我們作為學編程的程序員,能不能自己用自己所學知識來開發(fā)一個《羊了個羊(仿制版)》呢?那么話不多說,我反正已經試出來了,今天就是來秀秀源碼的?。ㄈ绻写罄形鸸郑?/span>

首先我準備了一些東西:

編譯器+需要的插件:VS2022/2019,easyX圖形庫插件(建議安裝最新的版本)注:VScode的朋友需要另外配置好環(huán)境。

需要準備的圖片素材:

如果有需要可以在文章最后找到獲取方式!

接下來就來看看我們的源碼:

#include<easyx.h>
#include<stdio.h>
const int WIDTH = 400;
const int HEIGHT = 760;
const int INTERVAL = 48;

IMAGE img_bk;
IMAGE img_item[3];

void loadImg()
{
	loadimage(&img_bk, "images/bk.jpg", WIDTH, HEIGHT);
	loadimage(img_item + 0, "images/cao.png",48,48);
	loadimage(img_item + 1, "images/lingdang.png", 48, 48);
	loadimage(img_item + 2, "images/shu.png", 48, 48);
}

int main()
{
	initgraph(WIDTH, HEIGHT,EW_SHOWCONSOLE);
	loadImg();

	int map[3][3] = {0};
	//初始化地圖
	for (int r = 0; r < 3; r++)
	{
		for (int c = 0; c < 3; c++)
		{
			map[r][c] = r+1;	//1 2 3
		}
	}
	//打亂數(shù)組
	for (int r = 0; r < 3; r++)
	{
		for (int c = 0; c < 3; c++)
		{
			int r1 = rand() % 3;
			int c1 = rand() % 3;
			int t = map[r1][c1];
			map[r1][c1] = map[r][c];
			map[r][c] = t;
		}
	}

	int store[7] = { 0 };

	int offsetX = (WIDTH - (2 * (48 + INTERVAL) + 48)) / 2;
	int offsetY = (HEIGHT - (2 * (48 + INTERVAL) + 48)) / 2;
	while (true)
	{
		BeginBatchDraw();
		//繪制地圖
		putimage(0, 0, &img_bk);
		//輸出圖片
		for (int r = 0; r < 3; r++)
		{
			for (int c = 0; c < 3; c++)
			{
				if(map[r][c])
					putimage(offsetX + c * (48 + INTERVAL), offsetY + r * (48 + INTERVAL), img_item + (map[r][c]-1));
			}
		}
		//繪制下面
		for (int i = 0; i < 7; i++)
		{
			if (store[i])
				putimage((i * 50)+26, 620, img_item + (store[i]-1));
		}


		EndBatchDraw();
		ExMessage msg = { 0 };
		if (peekmessage(&msg) && msg.message == WM_LBUTTONDOWN)
		{
			//鼠標坐標判斷
			for (int r = 0; r < 3; r++)
			{
				for (int c = 0; c < 3; c++)
				{
					int x = offsetX + c * (48 + INTERVAL);
					int y = offsetY + r * (48 + INTERVAL);
					//printf("pos(%d,%d)\n", x, y);
					//判斷鼠標是否點擊了圖片
					if (msg.x > x && msg.x < x + 48 && msg.y>y && msg.y < y + 48)
					{
						//求出點擊的圖片對應的數(shù)組下標
						int col = (msg.x - offsetX)  /  (48 + INTERVAL);
						int row = (msg.y - offsetY)  / (48 + INTERVAL);
						//printf("row:%d col:%d\n", row, col);
						//把點擊的圖片添加到下面
						for (int i = 0; i < 7; i++)
						{
							if (store[i] == 0)
							{
								store[i] = map[row][col];
								break;
							}
						}

						//如果下面有三個一樣的就消除
						int cnt = 0;
						for (int i = 0; i < 7; i++)
						{
							if (store[i] == map[row][col])
							{
								cnt++;
							}
						}
						if (cnt == 3)
						{
							for (int i = 0; i < 7; i++)
							{
								if (store[i] == map[row][col])
								{
									store[i] = 0;
								}
							}
						}

						//把點擊的圖片從map中刪除
						map[row][col] = 0;					
					}
				}
			}
		}

	}

	while (1);
	return 0;
}

我可沒有私藏哦,想要試試的小伙伴趕緊去拿著源碼編譯吧!如果遇到問題可以從下面來找我哦~

c語言能開發(fā)什么樣的游戲(C語言開發(fā):如何用130行代碼,寫出&quot;超火&quot;微信小游戲)

對啦對啦!另外的話為了幫助大家,輕松,高效學習C語言/C++,我給大家分享我收集的資源,從最零基礎開始的,幫助大家在學習C語言的道路上披荊斬棘!可以來我粉絲群領取哦~

編程學習書籍分享:

編程學習視頻分享:

整理分享(多年學習的源碼、項目實戰(zhàn)視頻、項目筆記,基礎入門教程)最重要的是你可以在群里面交流提問編程問題哦!

對于C/C++感興趣可以關注小編在后臺私信我:【編程交流】一起來學習哦!可以領取一些C/C++的項目學習視頻資料哦!已經設置好了關鍵詞自動回復,自動領取就好了!

c語言能開發(fā)什么樣的游戲(C語言開發(fā):如何用130行代碼,寫出&quot;超火&quot;微信小游戲)

熱門課程推薦

熱門資訊

請綁定手機號

x

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定