在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言實現《別碰白塊》小游戲!全部代碼+思路注釋

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 作者:童晶 ? 2022-12-08 09:06 ? 次閱讀

今天我們將用C語言實現一個小球跳躍躲避方塊的游戲。

就像闖關游戲一樣,小球闖關類游戲是休閑游戲的=一種,玩家在游戲中需要控制各種不同的小球展開不同的挑戰,盡情的闖過重重的關卡,努力的操作小球躲避障礙物以及機關,順利的到達終點,玩法十分的簡單,但是非常的考驗玩家的敏捷力以及反應力。

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

源碼示例:

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


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


  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坐標
  rect_top_y = height - rect_height; // 方塊頂部y坐標
  rect_vx = -3; // 方塊x方向速度


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


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


    rect_left_x = rect_left_x + rect_vx; // 方塊向左移
    if (rect_left_x <= 0) // 如果方塊跑到最左邊
    {
      rect_left_x = width; // 在最右邊重新出現
      score = score + 1; // 得分+1
      rect_height = rand() % int(height/4) + height/4; // 設置隨機高度
      rect_vx = rand()/float(RAND_MAX) *4 - 7; // 設置方塊隨機速度
    }
    // 如果小球碰到方塊
    if ((rect_left_x <= ball_x + radius) 
      && (rect_left_x + rect_width >= ball_x - radius) 
      && (height - rect_height <= ball_y + radius) )
    {
      Sleep(50); // 慢動作效果
      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]; // 定義字符串數組
    _stprintf(s, _T("%d"),  score); // 將score轉換為字符串
    settextstyle(40, 0, _T("宋體")); // 設置文字大小、字體
    outtextxy(50, 30, s); // 輸出得分文字
    Sleep(10);  // 暫停10毫秒
  }
  closegraph(); 
  return 0;
}

這一次主要講解了字符、邏輯運算符、整除、取余、類型轉換、隨機數等語法知識。利用繪制圓、矩形的函數,實現了別碰方塊的小游戲。

讀者也可以參考本章的開發思路,嘗試設計并分步驟實現flappy bird游戲(以后也會分享哦)

希望對大家有幫助!

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 游戲
    +關注

    關注

    2

    文章

    750

    瀏覽量

    26364
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137714
  • 源碼
    +關注

    關注

    8

    文章

    652

    瀏覽量

    29453

原文標題:C語言實現《別碰白塊》小游戲!全部代碼+思路注釋

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言實現:見縫插針游戲代碼思路+源碼分享

    見縫插圓我們昨天已經用C語言實現了,今天將實現一個見縫插針的游戲
    發表于 12-05 11:02 ?792次閱讀

    C++實現的經典小游戲代碼

    C++實現的經典小游戲代碼
    發表于 08-20 15:31

    自己做的“小游戲

    本帖最后由 kuailebu 于 2014-9-14 17:58 編輯 自學LabVIEW幾周,而且最近經常玩“”的手機游戲,就用幾天時間做一個LabVIEW版本的。因為
    發表于 08-30 18:32

    C語言小游戲源碼分享

    C語言小游戲源碼24點火柴人俄羅斯等等等35個游戲源碼網盤分享鏈接:https://pan.baidu.com/s/1Ez189jnaBELfsR10jy0dIQ提取碼:xa7o
    發表于 04-12 17:11

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

    c語言塊兒源代碼,希望大家學習交流。
    發表于 04-28 16:30 ?0次下載

    利用C語言來編寫打地鼠小游戲

    C語言模擬打地鼠小游戲
    的頭像 發表于 01-26 14:55 ?1.5w次閱讀

    4個重要算法C語言實現代碼

    4個重要算法C語言實現代碼
    發表于 06-10 08:00 ?12次下載

    使用C語言實現靜態網頁的代碼免費下載

    本文檔的主要內容詳細介紹的是使用C語言實現靜態網頁的代碼免費下載。
    發表于 11-22 16:20 ?2次下載

    如何用C語言實現推箱子游戲項目

    ? 這篇文章主要為大家詳細介紹了 C語言實現——《推箱子項目》 ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下! 本項目結合了分支,循環,數組的結合,并且對邏輯也是有
    的頭像 發表于 11-09 16:28 ?2642次閱讀

    如何用C語言實現貪吃蛇游戲項目

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

    如何用C語言實現游戲

    ? 這篇文章主要為大家詳細介紹了 C語言實現——《游戲》 ,文中示例
    的頭像 發表于 11-18 11:21 ?1991次閱讀

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

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

    調用機智云API,實現網頁控制物聯網游戲在STM32上同步顯示

    本文通過STM32接入機智云,再調用機智云WebSocket,實現了在原有系統上添加添加的物聯網游戲功能。得到的效果就是在網頁上Ja
    的頭像 發表于 11-24 10:09 ?852次閱讀
    調用機智云API,<b class='flag-5'>實現</b>網頁控制物聯網<b class='flag-5'>別</b>踩<b class='flag-5'>白</b><b class='flag-5'>塊</b><b class='flag-5'>游戲</b>在STM32上同步顯示

    C語言中如何實現注釋

    C語言中,注釋是用來增加代碼可讀性和注釋過程和功能的文本。C
    的頭像 發表于 11-22 10:17 ?1377次閱讀

    c語言怎么把代碼全部注釋

    要將C語言代碼全部注釋掉,即不讓代碼被編譯和執行,可以使用
    的頭像 發表于 11-22 10:21 ?7563次閱讀
    主站蜘蛛池模板: 四虎永久免费网站 | 乱色伦图片区 | 2020年亚洲天天爽天天噜 | 久久亚洲国产精品五月天 | 亚洲乱码卡一卡二卡三 | 在线免费观看色视频 | 国产美女精品三级在线观看 | 亚洲国产成人久久精品影视 | 手机在线观看视频你懂的 | 男人天堂网址 | 国模私拍大尺度视频在线播放 | 国产在线视频你懂得 | 国产重口老太和小伙乱视频 | 噜噜噜噜噜久久久久久91 | 欧美一区二区三区四区视频 | 亚洲欧美一区二区三区麻豆 | 一级片在线观看视频 | 国产一区二区三区毛片 | 性欧美zoz0另类xxxx | 亚洲一区区 | 免费观看视频网站 | 亚洲日本在线观看视频 | 麻豆国产三级在线观看 | 污视频18高清在线观看 | 久草免费新视频 | 色婷婷六月天 | 久青草国产在线视频_久青草免 | 亚洲色图20p| 免费视频不卡一区二区三区 | 亚洲精品久久久久久婷婷 | 黄网站色在线视频免费观看 | 你懂得视频在线 | 国色天香网在线 | 国产精品久久久久久久久ktv | 成人窝窝午夜看片 | 奇米影视777欧美在线观看 | 在线免费观看一级毛片 | 一级片免费看 | 欧美黄色大全 | 色综合久久久高清综合久久久 | 级毛片|