一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

C語(yǔ)言實(shí)現(xiàn)《別碰白塊》小游戲!全部代碼+思路注釋

C語(yǔ)言編程學(xué)習(xí)基地 ? 來(lái)源:C語(yǔ)言編程學(xué)習(xí)基地 ? 作者:童晶 ? 2022-12-08 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天我們將用C語(yǔ)言實(shí)現(xiàn)一個(gè)小球跳躍躲避方塊的游戲。

就像闖關(guān)游戲一樣,小球闖關(guān)類游戲是休閑游戲的=一種,玩家在游戲中需要控制各種不同的小球展開(kāi)不同的挑戰(zhàn),盡情的闖過(guò)重重的關(guān)卡,努力的操作小球躲避障礙物以及機(jī)關(guān),順利的到達(dá)終點(diǎn),玩法十分的簡(jiǎn)單,但是非常的考驗(yàn)玩家的敏捷力以及反應(yīng)力。

要做出這個(gè)游戲,首先學(xué)習(xí)字符的知識(shí),按空格鍵控制小球起跳;然后學(xué)習(xí)矩形的繪制,利用邏輯運(yùn)算符實(shí)現(xiàn)小球和方塊的碰撞判斷;接著學(xué)習(xí)整除、取余、類型轉(zhuǎn)換,利用隨機(jī)數(shù)增加游戲的趣味性;最后實(shí)現(xiàn)得分的計(jì)算顯示、解決小球在空中起跳的問(wèn)題。

源碼示例:

#include   
#include 
#include 
int main()
{
  float width,height,gravity; // 游戲畫面大小、重力加速度
  float ball_x,ball_y,ball_vy,radius; // 小球圓心坐標(biāo)、y方向速度、半徑大小
  float rect_left_x,rect_top_y,rect_width,rect_height,rect_vx; // 方塊障礙物的相關(guān)參數(shù)
  int score = 0; // 得分
  int isBallOnFloor = 1; // 小球是否在地面上,避免重復(fù)起跳


  width = 600;  // 游戲畫面寬度
  height = 400; // 游戲畫面高度
  gravity = 0.6;  // 重力加速度
  initgraph(width, height); // 新建一個(gè)畫布


  radius = 20; // 小球半徑  
  ball_x = width/4; // 小球x位置
  ball_y = height-radius;  // 小球y位置
  ball_vy = 0;  // 小球初始y速度為0


  rect_height = 100; // 方塊高度
  rect_width = 20; // 方塊寬度
  rect_left_x = width*3/4; // 方塊左邊x坐標(biāo)
  rect_top_y = height - rect_height; // 方塊頂部y坐標(biāo)
  rect_vx = -3; // 方塊x方向速度


  while(1) // 一直循環(huán)
  {    
    if (kbhit()) // 當(dāng)按鍵時(shí)
    {
      char input = _getch(); // 獲得輸入字符
      if (input==' ' && isBallOnFloor==1) // 當(dāng)按下空格鍵,并且小球在地面上時(shí)
      {
        ball_vy = -17; // 給小球一個(gè)向上的速度
        isBallOnFloor = 0; // 表示小球不在地面了,不能重復(fù)起跳
      }
    }


    ball_vy = ball_vy + gravity;  // 根據(jù)重力加速度更新小球y方向速度
    ball_y = ball_y + ball_vy;    // 根據(jù)小球y方向速度更新其y坐標(biāo)
    if (ball_y >= height-radius)  // 如果小球落到地面上
    {
      ball_vy = 0;  // y速度為0
      ball_y = height-radius;  // 規(guī)范其y坐標(biāo),避免落到地面下
      isBallOnFloor = 1; // 表示小球在地面上
    }


    rect_left_x = rect_left_x + rect_vx; // 方塊向左移
    if (rect_left_x <= 0) // 如果方塊跑到最左邊
    {
      rect_left_x = width; // 在最右邊重新出現(xiàn)
      score = score + 1; // 得分+1
      rect_height = rand() % int(height/4) + height/4; // 設(shè)置隨機(jī)高度
      rect_vx = rand()/float(RAND_MAX) *4 - 7; // 設(shè)置方塊隨機(jī)速度
    }
    // 如果小球碰到方塊
    if ((rect_left_x <= ball_x + radius) 
      && (rect_left_x + rect_width >= ball_x - radius) 
      && (height - rect_height <= ball_y + radius) )
    {
      Sleep(50); // 慢動(dòng)作效果
      score = 0; // 得分清零
    }


    cleardevice();  // 清空畫面
    fillcircle(ball_x, ball_y, radius);  // 繪制小球
    // 畫方塊
    fillrectangle(rect_left_x, height - rect_height, rect_left_x + rect_width,height);
    TCHAR s[20]; // 定義字符串?dāng)?shù)組
    _stprintf(s, _T("%d"),  score); // 將score轉(zhuǎn)換為字符串
    settextstyle(40, 0, _T("宋體")); // 設(shè)置文字大小、字體
    outtextxy(50, 30, s); // 輸出得分文字
    Sleep(10);  // 暫停10毫秒
  }
  closegraph(); 
  return 0;
}

這一次主要講解了字符、邏輯運(yùn)算符、整除、取余、類型轉(zhuǎn)換、隨機(jī)數(shù)等語(yǔ)法知識(shí)。利用繪制圓、矩形的函數(shù),實(shí)現(xiàn)了別碰方塊的小游戲。

讀者也可以參考本章的開(kāi)發(fā)思路,嘗試設(shè)計(jì)并分步驟實(shí)現(xiàn)flappy bird游戲(以后也會(huì)分享哦)

希望對(duì)大家有幫助!

審核編輯:湯梓紅

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

    關(guān)注

    2

    文章

    774

    瀏覽量

    26865
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141816
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    671

    瀏覽量

    30350

原文標(biāo)題:C語(yǔ)言實(shí)現(xiàn)《別碰白塊》小游戲!全部代碼+思路注釋

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語(yǔ)言實(shí)現(xiàn):見(jiàn)縫插針游戲!代碼思路+源碼分享

    見(jiàn)縫插圓我們昨天已經(jīng)用C語(yǔ)言實(shí)現(xiàn)了,今天將實(shí)現(xiàn)一個(gè)見(jiàn)縫插針的游戲。
    發(fā)表于 12-05 11:02 ?974次閱讀

    C++實(shí)現(xiàn)的經(jīng)典小游戲代碼

    C++實(shí)現(xiàn)的經(jīng)典小游戲代碼
    發(fā)表于 08-20 15:31

    自己做的“小游戲

    本帖最后由 kuailebu 于 2014-9-14 17:58 編輯 自學(xué)LabVIEW幾周,而且最近經(jīng)常玩“”的手機(jī)游戲,就用幾天時(shí)間做一個(gè)LabVIEW版本的。因?yàn)?/div>
    發(fā)表于 08-30 18:32

    C語(yǔ)言小游戲源碼分享

    C語(yǔ)言小游戲源碼24點(diǎn)火柴人俄羅斯等等等35個(gè)游戲源碼網(wǎng)盤分享鏈接:https://pan.baidu.com/s/1Ez189jnaBELfsR10jy0dIQ提取碼:xa7o
    發(fā)表于 04-12 17:11

    c語(yǔ)言塊兒(雙人版)源碼

    c語(yǔ)言塊兒源代碼,希望大家學(xué)習(xí)交流。
    發(fā)表于 04-28 16:30 ?0次下載

    利用C語(yǔ)言來(lái)編寫打地鼠小游戲

    C語(yǔ)言模擬打地鼠小游戲
    的頭像 發(fā)表于 01-26 14:55 ?1.6w次閱讀

    4個(gè)重要算法C語(yǔ)言實(shí)現(xiàn)代碼

    4個(gè)重要算法C語(yǔ)言實(shí)現(xiàn)代碼
    發(fā)表于 06-10 08:00 ?13次下載

    使用C語(yǔ)言實(shí)現(xiàn)靜態(tài)網(wǎng)頁(yè)的代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用C語(yǔ)言實(shí)現(xiàn)靜態(tài)網(wǎng)頁(yè)的代碼免費(fèi)下載。
    發(fā)表于 11-22 16:20 ?2次下載

    如何用C語(yǔ)言實(shí)現(xiàn)推箱子游戲項(xiàng)目

    ? 這篇文章主要為大家詳細(xì)介紹了 C語(yǔ)言實(shí)現(xiàn)——《推箱子項(xiàng)目》 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下! 本項(xiàng)目結(jié)合了分支,循環(huán),數(shù)組的結(jié)合,并且對(duì)邏輯也是有
    的頭像 發(fā)表于 11-09 16:28 ?2847次閱讀

    如何用C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲項(xiàng)目

    ? 這篇文章主要為大家詳細(xì)介紹了 C語(yǔ)言實(shí)現(xiàn)——《貪吃蛇項(xiàng)目》 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下! 本項(xiàng)目主要用到了 C
    的頭像 發(fā)表于 11-09 16:38 ?2766次閱讀

    如何用C語(yǔ)言實(shí)現(xiàn)游戲

    ? 這篇文章主要為大家詳細(xì)介紹了 C語(yǔ)言實(shí)現(xiàn)——《游戲》 ,文中示例
    的頭像 發(fā)表于 11-18 11:21 ?2223次閱讀

    qt用C++寫的2048小游戲代碼

    qt用C++寫的2048小游戲代碼
    發(fā)表于 09-27 11:48 ?3次下載

    調(diào)用機(jī)智云API,實(shí)現(xiàn)網(wǎng)頁(yè)控制物聯(lián)網(wǎng)游戲在STM32上同步顯示

    本文通過(guò)STM32接入機(jī)智云,再調(diào)用機(jī)智云WebSocket,實(shí)現(xiàn)了在原有系統(tǒng)上添加添加的物聯(lián)網(wǎng)游戲功能。得到的效果就是在網(wǎng)頁(yè)上Ja
    的頭像 發(fā)表于 11-24 10:09 ?1262次閱讀
    調(diào)用機(jī)智云API,<b class='flag-5'>實(shí)現(xiàn)</b>網(wǎng)頁(yè)控制物聯(lián)網(wǎng)<b class='flag-5'>別</b>踩<b class='flag-5'>白</b><b class='flag-5'>塊</b><b class='flag-5'>游戲</b>在STM32上同步顯示

    C語(yǔ)言中如何實(shí)現(xiàn)注釋

    C語(yǔ)言中,注釋是用來(lái)增加代碼可讀性和注釋過(guò)程和功能的文本。C
    的頭像 發(fā)表于 11-22 10:17 ?1930次閱讀

    c語(yǔ)言怎么把代碼全部注釋

    要將C語(yǔ)言代碼全部注釋掉,即不讓代碼被編譯和執(zhí)行,可以使用
    的頭像 發(fā)表于 11-22 10:21 ?8941次閱讀