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

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)球球大作戰(zhàn)項(xiàng)目

C語(yǔ)言編程學(xué)習(xí)基地 ? 來(lái)源:C語(yǔ)言編程學(xué)習(xí)基地 ? 作者:C語(yǔ)言編程學(xué)習(xí)基地 ? 2021-11-21 16:36 ? 次閱讀

這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)——《球球大作戰(zhàn)項(xiàng)目》,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下!在室友面前秀一下豈不是美滋滋!

游戲介紹:

這是一個(gè)大球吃小球的世界,玩家的目標(biāo)是要努力吃成最大的球球。在游戲一開始,玩家出現(xiàn)在地圖上隨機(jī)位置,地圖里灑滿了小彩豆,玩家吃掉小彩豆體積就會(huì)增大,當(dāng)增大到比別人的球大時(shí),就可以吃別人的球啦,當(dāng)然也得躲避更大的球。小球速度快,大球速度慢。球球到達(dá)一定重量后,可以分身,一個(gè)球變成等大的兩個(gè)球,可以再次分身,但是最多可以擁有16個(gè)分身。

本期就是帶著大家用C語(yǔ)言去開發(fā)一款自己寫的簡(jiǎn)易版球球大作戰(zhàn),一定要自己動(dòng)手來(lái)寫喲~

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

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

配套講解教程:球球大作戰(zhàn)游戲教程——嗶哩嗶哩

源代碼示例:

#include#include#include#include#include#include#pragma comment(lib,"winmm.lib")#define WIN_WIDTH 1024 //宏定義窗口寬和高#define WIN_HEIGHT 640#define MAP_WIDTH  (WIN_WIDTH*5)#define MAP_HEIGHT (WIN_HEIGHT*5)#define FOOD_NUM 1000//食物數(shù)量 #define AI_NUM 500 //人工智障數(shù)量
//玩家,用圓表示,用變量表示玩家的坐標(biāo)struct Ball //定義小球的結(jié)構(gòu),玩家,ai,食物{  int x;  int y;  int r;  bool flag;//是否存在標(biāo)志  DWORD color;//小球顏色}player,food[FOOD_NUM],ai[AI_NUM];//定義變量//int a; 圖片 IMAGE map;IMAGE map(MAP_WIDTH, MAP_HEIGHT);POINT cameraPos;//攝像機(jī)位置void CameraUpdate(){  //以人物為中心,計(jì)算攝像機(jī)的位置  cameraPos.x = player.x - WIN_WIDTH / 2;  cameraPos.y = player.y - WIN_HEIGHT / 2;
  if (cameraPos.x < 0) cameraPos.x = 0;  if (cameraPos.y < 0) cameraPos.y = 0;  if (cameraPos.x > MAP_WIDTH - WIN_WIDTH) cameraPos.x = MAP_WIDTH - WIN_WIDTH;  if (cameraPos.y > MAP_HEIGHT - WIN_HEIGHT) cameraPos.y = MAP_HEIGHT - WIN_HEIGHT;
}//初始化數(shù)據(jù)void GameInit(){  mciSendString("open ./BallBGM.mp3 alias BGM", 0, 0, 0);  mciSendString("play BGM repeat", 0, 0, 0);  //設(shè)置隨機(jī)數(shù)種子  srand((unsigned)time(NULL));
  player.x = rand() % MAP_WIDTH;  player.y = rand() % MAP_HEIGHT;  player.r = 15;  player.flag = true;  player.color = RGB(rand() % 256, rand() % 256, rand() % 256);  //初始化食物數(shù)據(jù)  for (int i = 0; i < FOOD_NUM; i++)  {    food[i].x = rand() % MAP_WIDTH;    food[i].y = rand() % MAP_HEIGHT;    food[i].r = rand() % 5+1;    food[i].flag = true;    food[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);  }  //初始化ai  for (int i = 0; i < AI_NUM; i++)  {    ai[i].x = rand() % MAP_WIDTH;    ai[i].y = rand() % MAP_HEIGHT;    ai[i].r = rand() % 15 + 1;    ai[i].flag = true;    ai[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);  }}void GameDraw(){  //加上雙緩沖繪圖,防止閃屏  BeginBatchDraw();  //設(shè)置工作區(qū)  SetWorkingImage(&map);  //設(shè)置背景顏色  setbkcolor(WHITE);  //清屏  cleardevice();  //繪制食物  for (int i = 0; i < FOOD_NUM; i++)  {    if (food[i].flag)    {      setfillcolor(food[i].color);      solidcircle(food[i].x, food[i].y, food[i].r);    }  }  //繪制智障  for (int i = 0; i < AI_NUM; i++)  {    if (ai[i].flag)    {      setfillcolor(ai[i].color);      solidcircle(ai[i].x, ai[i].y, ai[i].r);    }  }  //繪制玩家  if (player.flag)  {    setfillcolor(player.color);    solidcircle(player.x, player.y, player.r);    settextcolor(BLACK);    setbkmode(TRANSPARENT);    outtextxy(player.x, player.y, "頑石老師");  }  SetWorkingImage();//恢復(fù)默認(rèn)工作區(qū)  CameraUpdate();  //putimage(cameraPos.x, cameraPos.y, &map);  putimage(0, 0, WIN_WIDTH, WIN_HEIGHT, &map, cameraPos.x, cameraPos.y);  EndBatchDraw();//結(jié)束雙緩沖繪圖}//控制玩家void PlayerContrl(int speed){  //往上移動(dòng),什么發(fā)生改變?y坐標(biāo)減  if (GetAsyncKeyState(VK_UP) && player.y-player.r >= 0)  {    player.y -= speed;  }  if (GetAsyncKeyState(VK_DOWN) && player.y + player.r  {    player.y += speed;  }  if (GetAsyncKeyState(VK_LEFT) && player.x - player.r >= 0)  {    player.x -= speed;  }  if (GetAsyncKeyState(VK_RIGHT) && player.x + player.r   {    player.x += speed;  }}//求兩點(diǎn)之間的距離double DisTance(struct Ball b1,struct Ball b2){  return sqrt((double)(b1.x - b2.x)*(b1.x - b2.x) + (b1.y - b2.y)*(b1.y - b2.y));}//玩家吃食物void EatFood(){  for (int i = 0; i < FOOD_NUM; i++)  {    if (food[i].flag && DisTance(player,food[i])    {      food[i].flag = false;      player.r+=food[i].r/4;    }  }}//追逐算法 void Chase(struct Ball *chase, struct Ball run){  chase->x < run.x ? chase->x += 2 : chase->x -= 2;//x改變  chase->y < run.y ? chase->y += 2 : chase->y -= 2;//y改變}
void aiMove(){  for (int i = 0; i < AI_NUM; i++)  {    if (ai[i].flag)    {      Chase(&ai[i], player);    }  }}int main(){  //創(chuàng)建窗口  initgraph(WIN_WIDTH, WIN_HEIGHT);  GameInit();  //需要不斷地處理繪圖,以及獲取鍵盤消息...循環(huán)  while (1)  {    aiMove();    GameDraw();    EatFood();    PlayerContrl(10);  }    getchar();  return 0;}

責(zé)任編輯:haq
聲明:本文內(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)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

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

    關(guān)注

    30

    文章

    4891

    瀏覽量

    70347

原文標(biāo)題:C語(yǔ)言項(xiàng)目實(shí)戰(zhàn):《球球大作戰(zhàn)》零基礎(chǔ)項(xiàng)目!185 行源代碼示例

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

收藏 人收藏

    評(píng)論

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

    光洋股份擬收購(gòu)銀科技

    近日,光洋股份發(fā)布公告,公司正在籌劃發(fā)行股份及支付現(xiàn)金方式購(gòu)買寧波銀科技股份有限公司(以下簡(jiǎn)稱“銀科技”)100%股權(quán),并募集配套資金。
    的頭像 發(fā)表于 05-28 11:49 ?442次閱讀

    單片機(jī)C語(yǔ)言實(shí)例(350+例)

    350+單片機(jī)C語(yǔ)言實(shí)例! 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)第一時(shí)間告知,刪除內(nèi)容!
    發(fā)表于 05-22 21:47

    索尼FCB-CR8530與高速解決方案:打造精準(zhǔn)監(jiān)控新標(biāo)桿

    在安防監(jiān)控領(lǐng)域,高速機(jī)因靈活的云臺(tái)旋轉(zhuǎn)與變焦能力成為核心設(shè)備,而索尼FCB-CR8530模組憑借其超高清畫質(zhì)與智能技術(shù),為高速解決方案注入全新動(dòng)能。通過(guò)兩者的深度結(jié)合,可實(shí)現(xiàn)遠(yuǎn)距離目標(biāo)捕捉、復(fù)雜
    的頭像 發(fā)表于 05-13 17:42 ?156次閱讀

    車載+戶外雙考驗(yàn)!YU系列USB Type-C連接器成高爾夫車車載快充新選擇

    背景介紹隨著高爾夫運(yùn)動(dòng)不再高冷,配置USB等充電接口的高爾夫車,正成為提升球場(chǎng)運(yùn)營(yíng)與體驗(yàn)的標(biāo)配。凌科電氣YU-USB&Type-C連接器,以穩(wěn)定供電與嚴(yán)苛環(huán)境耐受性為核心,成為高爾夫車車
    的頭像 發(fā)表于 04-30 18:20 ?159次閱讀
    車載+戶外雙考驗(yàn)!YU系列USB Type-<b class='flag-5'>C</b>連接器成高爾夫<b class='flag-5'>球</b>車車載快充新選擇

    BGA封裝焊推力測(cè)試解析:評(píng)估焊點(diǎn)可靠性的原理與實(shí)操指南

    在電子封裝領(lǐng)域,BGA(Ball Grid Array)封裝因其高密度、高性能的特點(diǎn),廣泛應(yīng)用于集成電路和芯片模塊中。然而,BGA焊的機(jī)械強(qiáng)度直接影響到器件的可靠性和使用壽命,因此焊推力測(cè)試
    的頭像 發(fā)表于 04-18 11:10 ?340次閱讀
    BGA封裝焊<b class='flag-5'>球</b>推力測(cè)試解析:評(píng)估焊點(diǎn)可靠性的原理與實(shí)操指南

    深度解析激光錫焊中鉛與無(wú)鉛錫的差異及大研智造解決方案

    在激光錫焊這一精密焊接技術(shù)領(lǐng)域,錫作為關(guān)鍵的焊料,其特性直接關(guān)乎焊接質(zhì)量與產(chǎn)品性能。在實(shí)際應(yīng)用中,錫主要分為有鉛錫和無(wú)鉛錫,二者在成分、熔點(diǎn)、環(huán)保性能、機(jī)械性能以及成本等方面存
    的頭像 發(fā)表于 03-27 10:19 ?328次閱讀

    羅徹斯特電子針對(duì)BGA封裝的重新植解決方案

    BGA焊的更換及轉(zhuǎn)換, 以實(shí)現(xiàn)全生命周期解決方案的支持 當(dāng)BGA封裝的元器件從含鉛轉(zhuǎn)變?yōu)榉蟁oHS標(biāo)準(zhǔn)的產(chǎn)品時(shí),或者當(dāng)已存儲(chǔ)了15年的BGA產(chǎn)品在生產(chǎn)線上被發(fā)現(xiàn)存在焊損壞或焊接檢驗(yàn)不合格的情況
    的頭像 發(fā)表于 03-04 08:57 ?971次閱讀
    羅徹斯特電子針對(duì)BGA封裝的重新植<b class='flag-5'>球</b>解決方案

    深入解析:燈具壓測(cè)試

    非金屬材料的耐熱性能測(cè)試在電子產(chǎn)品的設(shè)計(jì)和制造過(guò)程中,非金屬材料和絕緣材料的使用日益廣泛。這些材料在高溫條件下的性能變化對(duì)于產(chǎn)品的安全性和可靠性至關(guān)重要。IEC壓測(cè)試是一種評(píng)估非金屬材料和絕緣材料
    的頭像 發(fā)表于 02-06 14:16 ?413次閱讀
    深入解析:燈具<b class='flag-5'>球</b>壓測(cè)試

    安泰功率放大器在管道內(nèi)檢測(cè)智能旋轉(zhuǎn)能量研究中的應(yīng)用

    實(shí)驗(yàn)名稱:管道內(nèi)檢測(cè)智能旋轉(zhuǎn)能量收集 研究方向:管道檢測(cè) 測(cè)試目的: 以管道內(nèi)檢測(cè)智能的運(yùn)動(dòng)特性分析為基礎(chǔ),提出適用于智能的旋轉(zhuǎn)壓電能量收集結(jié)構(gòu),建立機(jī)電耦合模型,分析集能器響應(yīng)特性,明確智能
    的頭像 發(fā)表于 12-26 10:39 ?355次閱讀
    安泰功率放大器在管道內(nèi)檢測(cè)智能<b class='flag-5'>球</b>旋轉(zhuǎn)能量研究中的應(yīng)用

    貼片材料焊推力測(cè)試:從設(shè)備校準(zhǔn)到檢測(cè)結(jié)果分析

    最近,有從事半導(dǎo)體行業(yè)的朋友,通過(guò)官網(wǎng)向小編咨詢,貼片材料焊推力測(cè)試要用哪種設(shè)備進(jìn)行檢測(cè)。隨著電子技術(shù)的飛速發(fā)展,電子設(shè)備的微型化和集成化要求對(duì)電子組件的組裝工藝提出了更高的挑戰(zhàn)。 貼片材料作為
    的頭像 發(fā)表于 12-19 11:22 ?614次閱讀
    貼片材料焊<b class='flag-5'>球</b>推力測(cè)試:從設(shè)備校準(zhǔn)到檢測(cè)結(jié)果分析

    詳解SMT工藝的五原則

    SMT(表面貼裝技術(shù))工藝中的五原則,是工程師在選擇焊膏時(shí)的一個(gè)重要指導(dǎo)原則,它確保了焊接的可靠性和質(zhì)量。以下是對(duì)五原則的詳細(xì)解釋:
    的頭像 發(fā)表于 12-04 09:11 ?588次閱讀
    詳解SMT工藝的五<b class='flag-5'>球</b>原則

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

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

    激光錫球焊接機(jī)植工藝在半導(dǎo)體行業(yè)的崛起

    在半導(dǎo)體行業(yè)現(xiàn)代化生產(chǎn)線中,激光錫球焊接機(jī)自動(dòng)植工藝正發(fā)揮著關(guān)鍵作用。它以高精度、高效率的優(yōu)勢(shì),為芯片封裝、器件焊接等環(huán)節(jié)帶來(lái)全新變革,助力半導(dǎo)體產(chǎn)業(yè)邁向更高質(zhì)量、更智能化的發(fā)展新階段。一、激光錫
    的頭像 發(fā)表于 10-24 14:44 ?1045次閱讀
    激光錫球焊接機(jī)植<b class='flag-5'>球</b>工藝在半導(dǎo)體行業(yè)的崛起

    機(jī)PLC數(shù)據(jù)采集物聯(lián)網(wǎng)系統(tǒng)內(nèi)解決方案

    機(jī),也被稱為壓機(jī)或者壓設(shè)備,是一種工業(yè)機(jī)械,主要用于將各種顆粒狀、粉末狀物料通過(guò)高壓擠壓形成球形或其他預(yù)定形狀的固體。這種機(jī)器廣泛應(yīng)用于冶金、礦山、煤炭、建材、耐火材料、化工等行業(yè),用于壓制
    的頭像 發(fā)表于 07-18 10:56 ?391次閱讀
    壓<b class='flag-5'>球</b>機(jī)PLC數(shù)據(jù)采集物聯(lián)網(wǎng)系統(tǒng)內(nèi)解決方案

    BGA連接器植工藝研究

    直接影響器件與電路的性能及可靠性,現(xiàn)從植工藝路線、BGA連接器設(shè)計(jì)要求、植工藝參數(shù)及關(guān)鍵技術(shù)、試驗(yàn)及檢測(cè)要求等幾個(gè)方面,闡述了影響B(tài)GA連接器植工藝實(shí)現(xiàn)的各種因素,借以提高BGA
    的頭像 發(fā)表于 07-15 15:42 ?761次閱讀
    BGA連接器植<b class='flag-5'>球</b>工藝研究
    主站蜘蛛池模板: 黄色网视频 | 看全黄大片狐狸视频在线观看 | 色噜噜噜噜噜 | 色网站在线| 天天视频色 | 香港三级理论在线影院 | 欧美一级免费片 | 萌白酱香蕉白丝护士服喷浆 | 亚洲第一免费网站 | 亚洲爱爱网站 | 国产又色 | 黄色成人一级片 | 欧美一区二区不卡视频 | 久久大尺度 | 精品一区二区视频 | 美女屁屁免费视频网站 | 91高清在线成人免费观看 | 久久美女精品国产精品亚洲 | 手机在线看片福利盒子 | 国产h在线播放 | 性欧美精品久久久久久久 | 仙踪林欧美另类视频 | 久久国产乱子伦精品免费看 | 亚洲色图 第一页 | 亚州1区2区3区4区产品乱码2021 | 天天拍天天干天天操 | 日韩精品一区二区三区免费视频 | www.五月婷| 日韩精品毛片 | 丁香综合网 | 久久婷婷成人综合色 | 免费看美女禁处爆涌视频 | 欧美黄色一级片视频 | 国产aaaaa一级毛片 | 操妞网| 特黄aaaaaa久久片 | 欧美成人午夜视频 | 色综合小说天天综合网 | 日韩一级片在线播放 | 国产性夜夜性夜夜爽91 | 国产激烈无遮挡免费床戏视频 |