在线观看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/C++自制程序:雙人擊球游戲

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 2023-02-13 14:51 ? 次閱讀

每天一個(gè)編程小項(xiàng)目,提升你的編程能力!

游戲說明

Player1玩家通過 W、S 按鍵控制左板上下移動(dòng),Player2 玩家通過 O、L 按鍵控制右板上下移動(dòng)。在游戲過程中,小球的速度會(huì)隨著接觸木板的次數(shù)增加而加快,增加游戲難度。當(dāng)小球沒有碰到木板時(shí)游戲結(jié)束。

游戲效果

ee0b542c-aaa0-11ed-bfe3-dac502259ad0.png

簡單了解游戲后我們就來試試吧!(直接上源碼,大家可以看注釋)

///////////////////////////////////////////////////
// 程序名稱:雙人擊球游戲
// 編譯環(huán)境:VS2010,EasyX_20200902
//


#include 
#include 


int main()
{
  initgraph(640, 480);
  srand(GetTickCount());
  setbkcolor(WHITE);
  cleardevice();


  setfillcolor(BLACK);
  setlinecolor(BLACK);
  settextstyle(30, 0, L"verdana");
  settextcolor(BLACK);


  int p1_x, p1_y, p2_x, p2_y, ball_x, ball_y;
  int dx, dy;
  int win = 1;              // 贏玩家
  p1_x = 45;                // 左板
  p1_y= 240;
  p2_x = 595;                // 右板
  p2_y = 240;  
  ball_x = rand() % 240 + 200;      // 小球 x 坐標(biāo)
  ball_y = rand() % 180 + 150;      // 小球 y 坐標(biāo)
  dx = (rand() % 2 * 2 - 1)*2;      // 小球移動(dòng)增量
  dy = (rand() % 2 * 2 - 1)*2;      // 小球移動(dòng)增量


  outtextxy(190, 200, L"Put Enter To Begin");
  while(_getwch() != 13);


  cleardevice();


  // player
  settextstyle(20, 0, L"Verdana");
  outtextxy(20, 50, L"Payer1");
  outtextxy(565, 50, L"Player2");


  // 提示
  settextstyle(15, 0, L"Verdana");
  outtextxy(20, 400, L"W 向上");
  outtextxy(20, 425, L"S 向下");
  outtextxy(590, 400, L"O 向上");
  outtextxy(590, 425, L"L 向下");


  line(50, 100, 590, 100);                      // 上邊界
  line(50, 380, 590, 380);                      // 下邊界
  solidcircle(ball_x, ball_y, 10);


  wchar_t key=0;
  while(true)
  {
    clearcircle(ball_x, ball_y, 10);                // 清除小球位置
    clearrectangle(p1_x - 5, p1_y - 20, p1_x + 5, p1_y + 20);    // 清除左板
    clearrectangle(p2_x - 5, p2_y - 20, p2_x + 5, p2_y + 20);    // 清除右板


    if(_kbhit())
    {
      // 獲取按鍵
      key = _getwch();    
  
      // 判斷板移動(dòng)的位置
      if(key == L's')
        p1_y += 30;
      else if(key == L'w')
        p1_y -= 30;
      else if(key == L'l')
        p2_y += 30;
      else if(key == L'o')
        p2_y -= 30;
    }


    // 判斷左右倆板是否超出移動(dòng)界限
    if((p1_y - 20) < 100)
      p1_y = 120;
    else if((p1_y + 20) > 380)
      p1_y = 360;
    else if((p2_y - 20) < 100)
      p2_y = 120;
    else if((p2_y + 20)> 380)
      p2_y = 360;


    // 畫左右兩板位置
    solidrectangle(p1_x - 5, p1_y - 20, p1_x + 5, p1_y + 20);
    solidrectangle(p2_x - 5, p2_y - 20, p2_x + 5, p2_y + 20);


    ball_x = ball_x + dx;
    ball_y = ball_y + dy;


    // 判斷小球遇到左右板反彈
    if(ball_x < 62 )
    {
      if(ball_y < p1_y + 20 && ball_y > p1_y - 20)
      {
        dx = -dx;
        dx += dx / 10;
      }
      else 
      {
        win = 2;
        solidcircle(ball_x, ball_y, 10);
        break;
      }
    }
    else if(ball_x > 578)
    {
      if(ball_y < p2_y + 20 && ball_y > p2_y - 20)
      {
        dx = -dx;
        dx += dx / 10;
      }
      else
      {
        solidcircle(ball_x, ball_y, 10);
        break;
      }
    }


    // 判斷小球遇到上下邊界反彈
    if(ball_y < 115)
      dy = -dy;
    else if(ball_y > 364)
      dy = -dy;


    solidcircle(ball_x, ball_y, 10);


    Sleep(20);
  }


  settextstyle(30, 0, L"Verdana");
  if(win == 1)
    outtextxy(250, 200, L"Player1 贏");
  else
    outtextxy(250, 200, L"Player2 贏");
  
  _getch();
  closegraph();
  return 0;
}

大家趕緊去動(dòng)手試試吧!

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

    關(guān)注

    2

    文章

    768

    瀏覽量

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

    關(guān)注

    88

    文章

    3683

    瀏覽量

    94882
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3824

    瀏覽量

    82442
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2117

    瀏覽量

    74789

原文標(biāo)題:【項(xiàng)目實(shí)戰(zhàn)】C/C++自制程序:雙人擊球游戲

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

收藏 人收藏

    評(píng)論

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

    C語言與C++的區(qū)別

    在很大程度上,C++C的超集,這意味著一個(gè)有效的C程序也是一個(gè)有效的C++程序
    發(fā)表于 09-16 10:20 ?1289次閱讀

    c++程序設(shè)計(jì)教程

    C++是一種高效應(yīng)用的程序設(shè)計(jì)語言,它即可進(jìn)行過程化程序設(shè)計(jì),也可進(jìn)行面向?qū)ο?b class='flag-5'>程序設(shè)計(jì),因而成了編程人員最廣泛使用的工具。學(xué)好C++,很容易
    發(fā)表于 04-08 00:36 ?124次下載
    <b class='flag-5'>c++</b><b class='flag-5'>程序</b>設(shè)計(jì)教程

    C/ C++/ Java 程序設(shè)計(jì)經(jīng)典教程》

    C/ C++/ Java 程序設(shè)計(jì)經(jīng)典教程》(Deitel 著) ●集作者幾十年程序設(shè)計(jì)經(jīng)驗(yàn)之精華,從軟件工程的原理強(qiáng)調(diào)結(jié)構(gòu)化程序設(shè)計(jì)方
    發(fā)表于 04-08 02:10 ?398次下載

    c++程序設(shè)計(jì)語言題解

    c++程序設(shè)計(jì)語言題解是與Bjarne Stroustrup的《C++程序設(shè)計(jì)語言》一書配套使用的習(xí)題解答,為從《C++
    發(fā)表于 09-05 16:00 ?121次下載
    <b class='flag-5'>c++</b><b class='flag-5'>程序</b>設(shè)計(jì)語言題解

    c++程序設(shè)計(jì)習(xí)題答案

    本書是與Bjarne Stroustrup的《C++程序設(shè)計(jì)語言》一書配套使用的習(xí)題解答,為從《C++程序設(shè)計(jì)語言》中精選出
    發(fā)表于 09-05 16:21 ?2次下載
    <b class='flag-5'>c++</b><b class='flag-5'>程序</b>設(shè)計(jì)習(xí)題答案

    C++課件、習(xí)題及答案

    *1.1  從CC++*1.2  最簡單的C++程序 1.3  C++
    發(fā)表于 09-08 09:35 ?108次下載
    <b class='flag-5'>C++</b>課件、習(xí)題及答案

    C++C/C++程序設(shè)計(jì)教程_C/C++概述

    C++基礎(chǔ)知識(shí),簡要介紹了C++的一些簡單知識(shí),概念,函數(shù)
    發(fā)表于 12-25 10:15 ?0次下載

    面向?qū)ο蟮?b class='flag-5'>程序設(shè)計(jì)(C++

    面向?qū)ο蟮?b class='flag-5'>程序設(shè)計(jì)(C++).面向?qū)ο蟮幕舅枷? C++對(duì)C的非面向?qū)ο髷U(kuò)充 繼承性與派生類 類庫和基于C++的良好OOP風(fēng)格。
    發(fā)表于 03-22 14:40 ?0次下載

    C++程序設(shè)計(jì)原理與實(shí)踐

    C++程序設(shè)計(jì)原理與實(shí)踐
    發(fā)表于 02-28 23:01 ?0次下載

    《Visual C++游戲編程基礎(chǔ)》電子書.pdf

    《Visual C++游戲編程基礎(chǔ)》電子書.pdf
    發(fā)表于 04-23 11:27 ?0次下載
    《Visual <b class='flag-5'>C++</b><b class='flag-5'>游戲</b>編程基礎(chǔ)》電子書.pdf

    C++程序設(shè)計(jì)上機(jī)指導(dǎo).pdf

    C++程序設(shè)計(jì)上機(jī)指導(dǎo)
    發(fā)表于 05-02 10:20 ?28次下載

    C++入門教程之C++程序設(shè)計(jì)的課件資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++入門教程之C++程序設(shè)計(jì)的課件資料免費(fèi)下載主要內(nèi)容包括了:1. 認(rèn)識(shí)C++2. C++的現(xiàn)狀和發(fā)展3.
    發(fā)表于 12-07 08:00 ?33次下載
    <b class='flag-5'>C++</b>入門教程之<b class='flag-5'>C++</b><b class='flag-5'>程序</b>設(shè)計(jì)的課件資料免費(fèi)下載

    C++程序設(shè)計(jì)教程之C++的初步知識(shí)的詳細(xì)資料說明

    C++程序設(shè)計(jì)教程之C++的初步知識(shí)的詳細(xì)資料說明包括了:1. 從CC++,2 . 最簡單的C++
    發(fā)表于 03-14 14:48 ?31次下載
    <b class='flag-5'>C++</b><b class='flag-5'>程序</b>設(shè)計(jì)教程之<b class='flag-5'>C++</b>的初步知識(shí)的詳細(xì)資料說明

    C++程序設(shè)計(jì)的基礎(chǔ)知識(shí)初步了解C++的資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++程序設(shè)計(jì)的基礎(chǔ)知識(shí)初步了解C++的資料免費(fèi)下載包括了:1 認(rèn)識(shí)C++,2 C++的現(xiàn)狀和發(fā)展,3
    發(fā)表于 06-10 08:00 ?25次下載
    <b class='flag-5'>C++</b><b class='flag-5'>程序</b>設(shè)計(jì)的基礎(chǔ)知識(shí)初步了解<b class='flag-5'>C++</b>的資料免費(fèi)下載

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

    qt用C++寫的2048小游戲源代碼
    發(fā)表于 09-27 11:48 ?3次下載
    主站蜘蛛池模板: 爱爱永久免费视频网站 | 免费网站日本永久免费观看 | 欧美午夜网 | 无人码一区二区三区视频 | 欧美1819| 色香蕉在线观看 | 日韩免费高清一级毛片在线 | 4hu四虎永久免在线视 | 三级电影天堂网 | 99精品福利 | 成人免费看黄页网址大全 | 午夜福利毛片 | 色婷婷狠狠 | 国产亚洲综合一区 柠檬导航 | 午夜两性色视频免费网站 | 在线黄视频网站 | 永久黄网站色视频免费观看99 | 亚洲国产精品丝袜在线观看 | 亚洲国产综合久久精品 | 男女午夜特黄毛片免费 | 四虎影视免费观看 | 精品一区二区三区免费爱 | 康熙古代高h细节肉爽文全文 | 美女张开大腿让男人捅 | 清纯唯美亚洲综合一区 | 欧美在线天堂 | 欧美成人精品一区二三区在线观看 | 新版bt天堂资源在线 | 一级特黄aa大片免费播放视频 | 国产热 | 黄色拍拍拍 | 四虎影院在线免费 | 波多野结衣在线观看一区 | 黄色毛片基地 | 亚洲狠狠婷婷综合久久久图片 | 在线观看亚洲一区 | 亚洲综合激情六月婷婷在线观看 | 手机在线免费视频 | 亚洲毛片基地4455ww | 国产高清视频在线播放www色 | 免费一级片在线 |