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

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

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

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

如何用C語言實(shí)現(xiàn)球球大作戰(zhàn)項(xiàng)目

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 作者:C語言編程學(xué)習(xí)基地 ? 2021-11-21 16:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

游戲介紹:

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

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

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

插件:圖形庫插件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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7642

    瀏覽量

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

    關(guān)注

    30

    文章

    4940

    瀏覽量

    73061

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    紫宸激光錫球焊錫機(jī):點(diǎn)亮芯片0.07mm激光植新征程

    隨著半導(dǎo)體行業(yè)向高性能、微型化方向加速演進(jìn),#芯片封裝技術(shù)面臨前所未有的精度與可靠性挑戰(zhàn)。尤其在人工智能、#5G通信、物聯(lián)網(wǎng)等領(lǐng)域,芯片焊點(diǎn)密度和互聯(lián)精度需求持續(xù)攀升。以下將通過芯片植行業(yè)背景
    的頭像 發(fā)表于 11-19 16:26 ?321次閱讀
    紫宸激光錫球焊錫機(jī):點(diǎn)亮芯片0.07mm激光植<b class='flag-5'>球</b>新征程

    激光焊接技術(shù)在焊接鈦工藝中的應(yīng)用

    作為高端閥門、航空航天軸承及人工關(guān)節(jié)的核心構(gòu)件,其焊接質(zhì)量直接決定密封性能與服役壽命。面對鈦材高溫易氧化、球體曲面熔深一致性控制等嚴(yán)峻挑戰(zhàn),激光焊接技術(shù)憑借其非接觸加工與精準(zhǔn)熱輸入特性,成為實(shí)現(xiàn)
    的頭像 發(fā)表于 10-23 16:31 ?84次閱讀
    激光焊接技術(shù)在焊接鈦<b class='flag-5'>球</b>工藝中的應(yīng)用

    激光焊接技術(shù)在焊接浮工藝中的應(yīng)用

    作為液位控制、閥門啟閉及壓力調(diào)節(jié)等裝置中的關(guān)鍵部件,其密封性、耐腐蝕性及結(jié)構(gòu)完整性直接關(guān)系到整個(gè)系統(tǒng)的可靠性與壽命。激光焊接技術(shù)因其獨(dú)特的加工優(yōu)勢,在浮的制造與封裝工藝中扮演著越來越重要的角色
    的頭像 發(fā)表于 09-18 15:53 ?182次閱讀
    激光焊接技術(shù)在焊接浮<b class='flag-5'>球</b>工藝中的應(yīng)用

    求助,關(guān)于K230部署yolov8時(shí)遇到問題求解

    使用yolov8訓(xùn)練出來了一個(gè)十個(gè)類別的模型并且按照要求轉(zhuǎn)換成了.kmodel模型,在部署到K230時(shí) 使用yolo大作戰(zhàn)里面的代碼提示我list out of range但是我看了我的.yaml
    發(fā)表于 08-12 07:26

    在k230上使用yolov5檢測圖像卡死,怎么解決?

    0.99以上 模型轉(zhuǎn)換指令 再將該模型放到k230設(shè)備上使用yolo大作戰(zhàn)中yolov5檢測示例,檢測就會卡死,打印出的檢測結(jié)果會超過1。 目前無從下手,大佬們求救!
    發(fā)表于 08-11 07:41

    PLC液壓成機(jī)數(shù)據(jù)采集物聯(lián)網(wǎng)解決方案

    機(jī),又名壓機(jī)或壓設(shè)備,屬于工業(yè)機(jī)械范疇,其主要功能是將各類顆粒狀、粉末狀物料,借助高壓擠壓工藝,制成球形或其他預(yù)設(shè)形狀的固體。該設(shè)備在冶金、礦山、煤炭、建材、耐火材料、化工等多個(gè)行業(yè)得到
    的頭像 發(fā)表于 06-26 16:11 ?427次閱讀
    PLC液壓成<b class='flag-5'>球</b>機(jī)數(shù)據(jù)采集物聯(lián)網(wǎng)解決方案

    光洋股份擬收購銀科技

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

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

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

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

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

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

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

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

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

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

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

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

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

    深入解析:燈具壓測試

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

    詳解SMT工藝的五原則

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