0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用C語言實(shí)現(xiàn)別踩白塊游戲

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 作者:C語言編程學(xué)習(xí)基地 ? 2021-11-18 11:21 ? 次閱讀

這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)——《別踩白塊游戲》,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下!

游戲介紹:

《別踩白塊兒 Don't Tap The White Tile》,這就是這個(gè)游戲的一個(gè)規(guī)則,我們只需要不斷踩著黑色方塊前進(jìn)即可,很簡單吧?誰都可以會(huì)玩,但并不是誰都能玩得很好噢,你呢?快來挑戰(zhàn)看看吧!經(jīng)典模式,以最快的速度到達(dá)終點(diǎn)。街機(jī)模式,你有能力得多少分就得多少分,沒有任何限制,這也是最具挑戰(zhàn)性的一個(gè)模式。限時(shí)模式,在30秒內(nèi)看你能走幾步。極速模式,沒有最高速限制的街機(jī)模式, 挑戰(zhàn)你的極限接力模式,規(guī)定時(shí)間內(nèi)完成50塊兒,然后會(huì)有更多時(shí)間去完成另外的50塊兒!

好了,那么我們今天就用我們所學(xué)的C語言知識來做出這個(gè)游戲吧!本項(xiàng)目僅實(shí)現(xiàn)了街機(jī)模式,其他模式大家可以自行摸索喲!

本項(xiàng)目編譯環(huán)境:VS2019/VS2013;

插件:圖形庫插件easyX,涉及圖片素材可以自行百度找也可以關(guān)注文末領(lǐng)??;

配套講解教程:別踩白塊游戲教程——嗶哩嗶哩

源代碼示例:

#include#include#include#include#include        //多媒體設(shè)備接口頭文件 #pragma comment(lib,"winmm.lib")  //多媒體設(shè)備接口庫文件

#define mian main#define WIDTH 400#define HEIGHT 700#define INTERVAL 100//黑塊怎么存儲?int map[4];int score;  //分?jǐn)?shù)
void gameInit(){  //播放音樂,向多媒體設(shè)備接口發(fā)送指令字符串  mciSendString(L"open ./野蜂飛舞.mp3 alias BGM", NULL, NULL, NULL);  //media device interface   send 發(fā)送  string 字符串  mciSendString(L"play  BGM", NULL, NULL, NULL);  //設(shè)置隨機(jī)數(shù)種子  srand((unsigned)time(NULL));  //對map進(jìn)行隨機(jī)初始化  for (size_t i = 0; i < 4; i++)  {    map[i] = rand() % 4;  }}//游戲界面繪制void gameDraw(){  //設(shè)置文字樣式  settextstyle(30, 0, L"楷體");  settextcolor(RED);  outtextxy(150, 30, L"別踩白塊");  //繪制游戲界面  setlinecolor(BLACK);  setlinestyle(PS_SOLID, 2);  for (size_t i = 0; i < 5; i++)  {    line(0, i * 150 + INTERVAL, WIDTH, i * 150 + INTERVAL);  //畫橫線    line(i * 100, INTERVAL, i * 100, HEIGHT);            //畫豎線  }  //根據(jù)map繪制出黑塊所在的位置  setfillcolor(BLACK);  for (size_t i = 0; i < 4; i++)  {    int x = map[i] * 100;    int y = i * 150 + INTERVAL;    //畫一個(gè)黑色的矩形    fillrectangle(x, y, x + 100, y + 150);  }  //輸出分?jǐn)?shù)  settextstyle(20, 0, L"楷體");  settextcolor(BLACK);  //把int 轉(zhuǎn)成 字符串用什么?  WCHAR str[20] = L"";  wsprintf(str, L"%d", score);  outtextxy(20, 20, str);}void move(){  //清屏  cleardevice();  //移動(dòng)  for (size_t i = 3; i > 0; i--)  {    map[i] = map[i - 1];  }  map[0] = rand() % 4;}//用鼠標(biāo)點(diǎn)擊黑塊,實(shí)現(xiàn)所有快,往下移動(dòng)bool mouseEvent(){  //獲取鼠標(biāo)消息  MOUSEMSG msg = GetMouseMsg();  if (msg.uMsg == WM_LBUTTONDOWN)  //鼠標(biāo)左鍵按下  {    //獲取最下面的黑塊的左上角坐標(biāo)    int x = map[3] * 100;    int y = 3 * 150 + INTERVAL;    if (msg.x >= x && msg.x <= x + 100 && msg.y >= y && msg.y <= y + 150)    {      score += 10;      //move();    }    else    {      return false;    }  }  return true;}//街機(jī)模式void loop(){  Sleep(500);  // 這個(gè)不太行,要自己寫定時(shí)器最好  move();}void gameOver(){  //彈出框  int isok =MessageBox(GetHWnd(), L"you lowser,是否繼續(xù)?", L"hit", MB_OKCANCEL);  if (isok == IDOK)  {    printf("繼續(xù)游戲~
");  }  else  {    printf("推出游戲~
");  }}
int mian(){  //圖形,正方形,圓形....  圖片  EW_SHOWCONSOLE同時(shí)顯示控制臺  initgraph(WIDTH, HEIGHT,EW_SHOWCONSOLE);  //設(shè)置窗口背景顏色  setbkcolor(WHITE);  cleardevice();  gameInit();  while (true)  {    gameDraw();    if (!mouseEvent())    {      break;    }    loop();  }  //游戲結(jié)束處理  gameOver();  getchar();  closegraph();  return 0;}

責(zé)任編輯:haq
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7626

    瀏覽量

    139613
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4876

    瀏覽量

    69964

原文標(biāo)題:C語言項(xiàng)目實(shí)戰(zhàn):《別踩白塊游戲》零基礎(chǔ)項(xiàng)目!137 行源代碼示例

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    客廳變游戲室?如何用樹莓派實(shí)現(xiàn) Moonlight 游戲流媒體

    在這個(gè)項(xiàng)目中,我們將向您展示如何使用Moonlight將游戲直接流式傳輸?shù)侥腞aspberryPi。Moonlight:https://moonlight-stream.org/Moonlight
    的頭像 發(fā)表于 03-25 09:37 ?317次閱讀
    客廳變<b class='flag-5'>游戲</b>室?如<b class='flag-5'>何用</b>樹莓派<b class='flag-5'>實(shí)現(xiàn)</b> Moonlight <b class='flag-5'>游戲</b>流媒體

    為什么學(xué)了C語言,卻寫不出像樣的項(xiàng)目?

    在學(xué)習(xí)編程的路上,C語言幾乎是每個(gè)程序員的“必修課”。不管你是打算從事嵌入式開發(fā)、系統(tǒng)編程,還是想要深入理解操作系統(tǒng)的底層原理,C語言都是一
    的頭像 發(fā)表于 03-14 17:37 ?261次閱讀
    為什么學(xué)了<b class='flag-5'>C</b><b class='flag-5'>語言</b>,卻寫不出像樣的項(xiàng)目?

    單片機(jī)C語言編程寶典大全,初學(xué)必備【強(qiáng)推下載!】

    資料介紹:包含 1. 51單片機(jī)入門教程 2. 初學(xué)者適用:單片機(jī)C語言實(shí)例100例(代碼及釋義) 3. 51單片機(jī)C語言快速上手 4. 51單片機(jī)
    發(fā)表于 03-14 11:03

    限時(shí)免積分下載:增量式與位置式PID算法的C語言實(shí)現(xiàn)分享

    前面咱們有分享對PID算法離散化和增量式PID算法原理進(jìn)行來探索,之后又使用Matlab進(jìn)行了仿真實(shí)驗(yàn),對PID三個(gè)參數(shù)又有了更深入的認(rèn)識,接下來我們來使用C語言進(jìn)行PID算法實(shí)現(xiàn),并且結(jié)合控制電機(jī)的項(xiàng)目來深入學(xué)習(xí)。 今天限時(shí)免
    發(fā)表于 03-05 18:32

    解決HarmonyOS應(yīng)用中Image組件問題的有效方案

    碼完成后才刷新顯示。由于圖片下載過程耗時(shí)較長,在圖片完全加載之前,頁面往往會(huì)顯示空白區(qū)域或占位圖(通常為白色或淺色背景),這種現(xiàn)象被稱為“Image ”?!癐mage ”不僅影
    的頭像 發(fā)表于 02-17 10:08 ?826次閱讀
    解決HarmonyOS應(yīng)用中Image組件<b class='flag-5'>白</b><b class='flag-5'>塊</b>問題的有效方案

    EE-188:使用C語言在ADSP-219x DSP上實(shí)現(xiàn)中斷驅(qū)動(dòng)系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《EE-188:使用C語言在ADSP-219x DSP上實(shí)現(xiàn)中斷驅(qū)動(dòng)系統(tǒng).pdf》資料免費(fèi)下載
    發(fā)表于 01-15 16:06 ?0次下載
    EE-188:使用<b class='flag-5'>C</b><b class='flag-5'>語言</b>在ADSP-219x DSP上<b class='flag-5'>實(shí)現(xiàn)</b>中斷驅(qū)動(dòng)系統(tǒng)

    基于FPGA實(shí)現(xiàn)圖像直方圖設(shè)計(jì)

    直方圖統(tǒng)計(jì)的原理 直方圖統(tǒng)計(jì)從數(shù)學(xué)上來說,是對圖像中的像素點(diǎn)進(jìn)行統(tǒng)計(jì)。圖像直方圖統(tǒng)計(jì)常用于統(tǒng)計(jì)灰度圖像,表示圖像中各個(gè)灰度級出現(xiàn)的次數(shù)或者概率。統(tǒng)計(jì)直方圖的實(shí)現(xiàn)采用C/C++或者其他高級語言實(shí)
    的頭像 發(fā)表于 12-24 10:24 ?550次閱讀
    基于FPGA<b class='flag-5'>實(shí)現(xiàn)</b>圖像直方圖設(shè)計(jì)

    在學(xué)習(xí)go語言的過程過的坑

    作為一個(gè)5年的phper,這兩年公司和個(gè)人都在順應(yīng)技術(shù)趨勢,新項(xiàng)目慢慢從php轉(zhuǎn)向了go語言,從2021年到現(xiàn)在,筆者手上也先后開發(fā)了兩個(gè)go項(xiàng)目。在學(xué)習(xí)go語言的過程中也學(xué)習(xí)并總結(jié)了一些相關(guān)的東西,這篇文章就分享下自己過的一
    的頭像 發(fā)表于 11-11 09:22 ?343次閱讀

    使用C語言實(shí)現(xiàn)函數(shù)模板

      用C語言能不能實(shí)現(xiàn)一個(gè)通用的函數(shù),既能完成整數(shù)的相加,又能完成浮點(diǎn)數(shù)的相加?
    的頭像 發(fā)表于 11-09 11:38 ?728次閱讀

    C語言中的socket編程基礎(chǔ)

    Socket編程簡介 Socket是一種通信機(jī)制,允許程序之間進(jìn)行通信。在C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)不同計(jì)算機(jī)之間的通信
    的頭像 發(fā)表于 11-01 16:51 ?859次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當(dāng)前編程領(lǐng)域中的重要成員,它們各自具有獨(dú)特的優(yōu)勢和特點(diǎn),適用于不同的應(yīng)用場景。以下將從語法特性、內(nèi)存管理、跨平臺性、性能、應(yīng)用領(lǐng)域等多個(gè)方面對C
    的頭像 發(fā)表于 10-29 17:31 ?808次閱讀

    何用 S7-200 實(shí)現(xiàn) Modbus 通信?

    電子發(fā)燒友網(wǎng)站提供《如何用 S7-200 實(shí)現(xiàn) Modbus 通信?.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 10:22 ?2次下載

    PLC編程語言C語言的區(qū)別

    在工業(yè)自動(dòng)化和計(jì)算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們在多個(gè)方面存在顯著的區(qū)別。本文將從多個(gè)維度深入探討PLC編程
    的頭像 發(fā)表于 06-14 17:11 ?4158次閱讀

    何用C語言實(shí)現(xiàn)高效查找(二分法)

    今天給分享一下使用C語言實(shí)現(xiàn)二分算法,主要包含以下幾部分內(nèi)容:二分查找算法介紹二分查找算法使用場景二分查找算法代碼實(shí)現(xiàn)二分查找算法實(shí)現(xiàn)過程用C
    的頭像 發(fā)表于 06-04 08:04 ?1543次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>C</b><b class='flag-5'>語言實(shí)現(xiàn)</b>高效查找(二分法)

    使用C語言實(shí)現(xiàn)的CRC計(jì)算單元的例子

    使用C語言實(shí)現(xiàn)的CRC計(jì)算單元的例子
    的頭像 發(fā)表于 05-16 16:16 ?1351次閱讀