精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

C/C++自制程序:雙人擊球游戲

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 2023-02-13 14:51 ? 次閱讀

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

游戲說明

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

游戲效果

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

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

///////////////////////////////////////////////////
// 程序名稱:雙人擊球游戲
// 編譯環境: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 坐標
  ball_y = rand() % 180 + 150;      // 小球 y 坐標
  dx = (rand() % 2 * 2 - 1)*2;      // 小球移動增量
  dy = (rand() % 2 * 2 - 1)*2;      // 小球移動增量


  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();    
  
      // 判斷板移動的位置
      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;
    }


    // 判斷左右倆板是否超出移動界限
    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;
}

大家趕緊去動手試試吧!

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

    關注

    2

    文章

    723

    瀏覽量

    26214
  • 編程
    +關注

    關注

    88

    文章

    3521

    瀏覽量

    93269
  • 程序
    +關注

    關注

    115

    文章

    3720

    瀏覽量

    80357
  • C++
    C++
    +關注

    關注

    21

    文章

    2085

    瀏覽量

    73302

原文標題:【項目實戰】C/C++自制程序:雙人擊球游戲

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

收藏 人收藏

    評論

    相關推薦

    C語言與C++的區別

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

    c++程序設計教程

    C++是一種高效應用的程序設計語言,它即可進行過程化程序設計,也可進行面向對象程序設計,因而成了編程人員最廣泛使用的工具。學好C++,很容易
    發表于 04-08 00:36 ?124次下載
    <b class='flag-5'>c++</b><b class='flag-5'>程序</b>設計教程

    C/ C++/ Java 程序設計經典教程》

    C/ C++/ Java 程序設計經典教程》(Deitel 著) ●集作者幾十年程序設計經驗之精華,從軟件工程的原理強調結構化程序設計方
    發表于 04-08 02:10 ?398次下載

    c++程序設計語言題解

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

    c++程序設計習題答案

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

    C++課件、習題及答案

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

    C++C/C++程序設計教程_C/C++概述

    C++基礎知識,簡要介紹了C++的一些簡單知識,概念,函數
    發表于 12-25 10:15 ?0次下載

    面向對象的程序設計(C++

    面向對象的程序設計(C++).面向對象的基本思想 C++C的非面向對象擴充 繼承性與派生類 類庫和基于C++的良好OOP風格。
    發表于 03-22 14:40 ?0次下載

    C++程序設計原理與實踐

    C++程序設計原理與實踐
    發表于 02-28 23:01 ?0次下載

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

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

    C++程序設計上機指導.pdf

    C++程序設計上機指導
    發表于 05-02 10:20 ?28次下載

    C++入門教程之C++程序設計的課件資料免費下載

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

    C++程序設計教程之C++的初步知識的詳細資料說明

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

    C++程序設計的基礎知識初步了解C++的資料免費下載

    本文檔的主要內容詳細介紹的是C++程序設計的基礎知識初步了解C++的資料免費下載包括了:1 認識C++,2 C++的現狀和發展,3
    發表于 06-10 08:00 ?25次下載
    <b class='flag-5'>C++</b><b class='flag-5'>程序</b>設計的基礎知識初步了解<b class='flag-5'>C++</b>的資料免費下載

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

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