chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

C語言項目:接球小游戲(自制)!詳細思路+源碼分享

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 2023-01-09 11:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

每天一個C語言小項目,提升你的編程能力!

用VS寫了一個小小的游戲,在界面右側(cè)有運行時間,接到的小球個數(shù)等信息,有 10 個小球下落,玩家可以控制一個盒子左右移動(方向鍵),來接小球,按 Esc 鍵退出,最后會顯示接到的小球的數(shù)目/分數(shù)。

游戲就是這么簡單,不過也很考驗大家的反應(yīng)能力的哦!

游戲運行截圖如下:

c19d37de-8e5d-11ed-bfe3-dac502259ad0.png

簡單了解游戲后我們就來試試吧!

本項目編譯環(huán)境:Visual Studio 2019/2022,EasyX插件

代碼展示:

#include 
#include 
#include 
#include 


// 定義常量
#define NUM 10
#define  CMD_LEFT    1
#define  CMD_RIGHT    2
#define  CMD_QUIT    4


int box_x = 10;
int box_y = 420;


// 定義球的結(jié)構(gòu)體
struct Ball
{
  int x, y, v;
};


// 獲取用戶控制
int GetCommand()
{
  int c = 0;
  if (GetAsyncKeyState(VK_LEFT) & 0x8000)    c |= CMD_LEFT;
  if (GetAsyncKeyState(VK_RIGHT) & 0x8000)  c |= CMD_RIGHT;
  if (GetAsyncKeyState(VK_ESCAPE) & 0x8000)  c |= CMD_QUIT;


  return c;
}


// 倒計時
int Time(int t)
{
  char strsec[10];
  int sec = 20 - (GetTickCount() - t) / 1000;
  itoa(sec, strsec, 10);
  outtextxy(570, 110, "      ");
  outtextxy(570, 110, strcat(strsec, "s"));
  return sec;
}


// 介紹
void menu()
{
  line(449, 0, 449, 480);
  char runTime[] = "游戲倒計時     : ",
    receiveBallNum[] = "接到的球的數(shù)量:", copyRight[] = "版權(quán)所有:C語言編程",
    finishWorkDate[] = "完成日期:2023年1月7日",
    introductiona[] = "按方向鍵控制盒子移動接住", introductionb[] = "小球,倒計時為0時游戲結(jié)束";


  settextcolor(GREEN);
  outtextxy(450, 10, introductiona);
  outtextxy(450, 30, introductionb);
  outtextxy(450, 110, runTime);
  outtextxy(450, 210, receiveBallNum);
  outtextxy(450, 310, copyRight);
  outtextxy(450, 410, finishWorkDate);
}


// 產(chǎn)生隨機球
void ballRandom(Ball ball[], int i)
{
  ball[i].x = 16 + 45 * i;
  ball[i].y = 8 + rand() % 32;
  ball[i].v = 1 + rand() % 5;
}


// 畫球,并計算得分
void calculateScore(Ball ball[], int& score)
{
  for (int i = 0; i < NUM; i++)
  {
    fillcircle(ball[i].x, ball[i].y, 8);
    if (ball[i].y >= 472)
    {
      ballRandom(ball, i);
      continue;
    }
    if (box_x + 8 <= ball[i].x && ball[i].x <= box_x + 72 && ball[i].y >= 412)
    {
      score++;
      ballRandom(ball, i);
    }
  }
}


// 主函數(shù)
int main()
{
  // 初始化
  initgraph(640, 480);
  srand(time(NULL));
  BeginBatchDraw();
  setlinecolor(GREEN);
  setfillcolor(WHITE);


  menu();


  Ball ball[NUM];
  int dx, i, c, score = 0;
  bool flag = true;


  for (i = 0; i < NUM; i++)
  {
    ballRandom(ball, i);
  }


  int t = GetTickCount();
  char strScore[10], str[] = "your score:";


  // 游戲主循環(huán)
  while (flag)
  {
    dx = 0;


    // 顯示得分
    char strScore[10];
    itoa(score, strScore, 10);
    outtextxy(570, 210, strScore);


    // 畫球,并計算得分
    calculateScore(ball, score);


    // 畫盒子
    fillrectangle(box_x, box_y, box_x + 80, box_y + 60);
    FlushBatchDraw();


    // 獲取用戶控制命令
    c = GetCommand();
    if (c & CMD_LEFT)  dx = -10;
    if (c & CMD_RIGHT)  dx = 10;
    if (c & CMD_QUIT)  flag = false;
    if (!Time(t)) flag = false;


    // 延時
    Sleep(25);


    // 擦除游戲區(qū)
    clearrectangle(0, 0, 448, 480);


    // 計算球的新坐標
    for (i = 0; i < NUM; i++)
    {
      ball[i].y += ball[i].v;
    }


    // 移動盒子
    box_x += dx;
    if (box_x < 0)   box_x = 0;
    if (box_x > 368) box_x = 368;
  }


  // 清空鍵盤緩沖區(qū)
  FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));


  // 輸出游戲結(jié)果
  itoa(score, strScore, 10);
  outtextxy(222, 240, strcat(str, strScore));
  outtextxy(220, 300, "按任意鍵退出");
  EndBatchDraw();


  // 按任意鍵退出
  getch();
  closegraph();


  return 0;
}

大家趕緊去動手試試吧!

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

    關(guān)注

    2

    文章

    787

    瀏覽量

    27237
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7642

    瀏覽量

    144524
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3707

    瀏覽量

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

    關(guān)注

    8

    文章

    682

    瀏覽量

    31062

原文標題:C語言項目:接球小游戲(自制)!詳細思路+源碼分享

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    C語言十字消除游戲!詳細思路+源碼分享

    十字消除,休閑小游戲,在規(guī)定時間內(nèi),只要是十字線能連接到的相同顏色的方塊,就能獲得相應(yīng)的得分,如果點擊后沒有能夠消除的方塊會扣除時間,是一款益智小游戲
    發(fā)表于 11-28 10:45 ?1450次閱讀

    llabview黑白棋小游戲制作詳細解析

    `相關(guān)課程推薦:《8周LabVIEW視覺項目編程實戰(zhàn)特訓營》上面這張是效果圖編寫這樣一個界面可以使用到多種不同的思路和技巧,我會按照從簡到繁的順序,分幾次來介紹幾個不同的方法。 講由NI 軟件工程師阮奇楨為您講解。llabview黑白棋
    發(fā)表于 11-23 15:44

    最受歡迎Labview小游戲(程序?qū)崿F(xiàn)資料下載)

    一個界面可以使用到多種不同的思路和技巧,我會按照從簡到繁的順序,分幾次來介紹幾個不同的方法。 講由NI 軟件工程師阮奇楨為您講解。labview黑白棋小游戲制作詳細解析:`
    發(fā)表于 04-14 20:11

    C語言小游戲源碼分享

    C語言小游戲源碼24點火柴人俄羅斯等等等35個游戲源碼網(wǎng)盤分享鏈接:https://pan.ba
    發(fā)表于 04-12 17:11

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

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

    基于Labview的小游戲飛天忍者貓源碼

    基于Labview的小游戲飛天忍者貓源碼
    發(fā)表于 11-15 18:22 ?71次下載

    C語言零基礎(chǔ)項目:打字母游戲!詳細思路+源碼分享

    今天就用C語言寫了這么個打字母的小程序,就是以前學習機上那種字母往下掉,然后按相應(yīng)鍵字母消失的游戲。
    發(fā)表于 12-15 15:02 ?1041次閱讀

    C語言零基礎(chǔ)項目:迷宮游戲!詳細思路+源碼分享

    每天一個C語言項目,提升你的編程能力!
    的頭像 發(fā)表于 12-21 10:08 ?1865次閱讀

    C語言零基礎(chǔ)項目自制軍棋游戲!詳細思路+源碼分享

    每天一個C語言項目,提升你的編程能力!
    的頭像 發(fā)表于 12-29 17:14 ?9258次閱讀

    C語言零基礎(chǔ)項目:吃豆人小游戲!詳細思路+源碼分享

    《吃豆游戲》是一款休閑小游戲,和貪吃蛇,球球大作戰(zhàn)吃食物都是有差不多的游戲邏輯。
    的頭像 發(fā)表于 01-03 11:38 ?2388次閱讀

    C語言零基礎(chǔ)項目:連連看小游戲

    連連看小游戲速度節(jié)奏快,畫面清晰可愛,適合細心的玩家。豐富的道具和公共模式的加入,增強游戲的競爭性。多樣式的地圖,使玩家在各個游戲水平都可以尋找到挑戰(zhàn)的目標,長期地保持游戲的新鮮感。
    的頭像 發(fā)表于 01-04 15:28 ?1497次閱讀

    C語言項目:扔香蕉的大猩猩(自制游戲)!詳細思路+源碼分享

    網(wǎng)上有一個香蕉金剛的跑酷游戲,不過我們這個扔香蕉游戲模仿的并不是這個,而是模仿的微軟在 20 多年前的一個小游戲,不知道誰也有印象呢?
    的頭像 發(fā)表于 01-06 10:58 ?1305次閱讀

    C語言項目:礦井逃生游戲(密室)!詳細思路+源碼分享

    密室逃脫相信大部分都玩過了吧?本游戲就是一種用C語言寫的類似的游戲,因為用手電筒照明找路,所以有點像礦工的樣子,還是叫它礦井逃生吧?。ㄒ韵率?b class='flag-5'>游戲
    的頭像 發(fā)表于 01-07 09:41 ?2034次閱讀

    C語言小游戲源碼大放送

    電子發(fā)燒友網(wǎng)站提供《C語言小游戲源碼大放送.rar》資料免費下載
    發(fā)表于 11-21 10:36 ?2次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>小游戲</b><b class='flag-5'>源碼</b>大放送

    FPGA打磚塊小游戲設(shè)計思路

    ? 交流問題 ? Q :FPGA打磚塊小游戲,如何基于FPGA用verilog語言在Vivado平臺上寫打磚塊小游戲,最好能用到PS2與VGA。 A :以下是一個基于 FPGA? Verilog
    的頭像 發(fā)表于 12-09 16:57 ?1445次閱讀