發(fā)布時間:2023-11-27 00:09:29 瀏覽量:115次
近日,一款名為“羊了個羊”微信小游戲火爆全網。
憑借簡單玩法和不走尋常路的關卡設置,三消小游戲《羊了個羊》,成為《合成大西瓜》《召喚神龍》后的小微游戲新王者。
“其實游戲很簡單,就是湊齊三個一樣的圖案就能點擊消除,湊不齊三個的圖案先放在底部的七個待選欄位里,如果七個槽位都占滿了,游戲就失敗了。”游戲第一關其實是玩法教程,但當玩家來到第二關時,難度直線上升。根據(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語言/C++,我給大家分享我收集的資源,從最零基礎開始的,幫助大家在學習C語言的道路上披荊斬棘!可以來我粉絲群領取哦~
編程學習書籍分享:
編程學習視頻分享:
整理分享(多年學習的源碼、項目實戰(zhàn)視頻、項目筆記,基礎入門教程)最重要的是你可以在群里面交流提問編程問題哦!
對于C/C++感興趣可以關注小編在后臺私信我:【編程交流】一起來學習哦!可以領取一些C/C++的項目學習視頻資料哦!已經設置好了關鍵詞自動回復,自動領取就好了!
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設計領域和數(shù)字藝術教育的重要性,歡迎點擊咨詢報名。
2. 手機游戲如何開發(fā)(如何制作傳奇手游,都需要準備些什么?)
?如何制作傳奇手游,都需要準備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時代在進步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費、一鍵制作炫酷特效,適合新手小白。快來試試!
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經濟體系揭秘,不同玩家角色的經濟活動
Bigtime加密游戲經濟模型分析,探討游戲經濟特點,幫助玩家更全面了解這款GameFi產品。
6. 3D動漫建模全過程,不是一般人能學的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準備設計圖片,我從雕刻進入。這一次,它將是一種純粹關注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
7. 3D動畫軟件你知道幾個?3ds Max、Blender、Maya、Houdini大比拼
當提到3D動畫軟件或動畫工具時,指的是數(shù)字內容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應并不會推出《巫師4》。因為《巫師》系列在策劃的時候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
想讓你的3D打印模型更堅固?不妨嘗試一下Cura參數(shù)設置和設計技巧,讓你輕松掌握!
10. 虛幻引擎5節(jié)省存儲空間用這招!緩存的清理與設置
眾所周知,虛幻引擎5(下面簡稱UE5)特別占用存儲空間,僅一個版本安裝好的文件就有60G,這還不包括我們在使用時保存的工程文件和隨之產生的緩存文件。而...
最新文章
同學您好!