最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現(xiàn)簡易反彈小球游戲的示例代碼

 更新時間:2022年10月10日 11:40:08   作者:暢游星辰大海  
我們利用printf 函數(shù)實現(xiàn)一個在屏幕上彈跳的小球。彈跳的小球游戲比較簡單、容易入門,也是反彈球消磚塊、接金幣、臺球等很多游戲的基礎(chǔ),感興趣的可以了解一下

前言

我們利用printf 函數(shù)實現(xiàn)一個在屏幕上彈跳的小球,如圖所示。彈跳的小球游戲比較簡單、容易入門,也是反彈球消磚塊、接金幣、臺球等很多游戲的基礎(chǔ)。

完成游戲前需要掌握的語法知識:標(biāo)識符、變量、常量、運算符與表達(dá)式,以及 printf、scanf、if-else、while、for 語句的用法。

正文部分我們會逐步進(jìn)行講解,前一部分是后一部分的基礎(chǔ),大家不要跳過閱讀。

一、顯示靜止的小球

首先利用 printf 函數(shù)在屏幕坐標(biāo)(x,y)處顯示一個靜止的小球字符'o',注意屏幕坐標(biāo)系的原點在左上角,如圖

#include<stdio.h>
int main()
{
    int i,j;
    int x=5;
    int y=10;
    
    //輸出小球上面的空行 
    for(i=0;i<x;i++)
       printf("\n");
    //輸出小球左邊的空格   
    for(j=0;j<y;j++)
       printf(" ");
    printf("o");//輸出小球 
    printf("\n");
    return 0;
 } 

二、小球下落

改變小球的坐標(biāo)變量,即讓小球的i坐標(biāo)增加,從而讓小球下落。在每次顯示之前使用了清屏函數(shù)system("cls"),注意需要包含新的頭文件#include<stdlib.h>。

#include<stdio.h>
 #include<stdlib.h>
 int main()
 {
     int i,j;
    int x=1;
    int y=10;
    for(x=1;x<10;i++)
    {
        system("cls");//清屏函數(shù)
        //輸出小球上面的空行 
        for(i=0;i<x;i++)
           printf("\n");
        //輸出小球左邊的空格   
        for(j=0;j<y;j++)
           printf(" ");
        printf("o");//輸出小球 
        printf("\n");   
        return 0;
    }
     return 0;
 }

三、上下彈跳的小球

在上一步代碼的基礎(chǔ)上增加記錄速度的變量 velocity,小球的新位置x=舊位置x+速度velocity。當(dāng)判斷小球到達(dá)上、下邊界時改變方向,即改變velocity 的正負(fù)號。

#include<stdio.h>
 #include<stdlib.h>
 int main()
 {
     int i,j;
    int x=5;
    int y=10;
    
    int height=20;
    int velocity=1;
    while(1)
    {
        x=x+velocity;
        system("cls");// 清屏函數(shù)
        
        //輸出小球上面的空行 
        for(i=0;i<x;i++)
           printf("\n");
        //輸出小球左邊的空格    
        for(j=0;j<y;j++)
           printf(" ");//輸出小球 
        printf("o");
        printf("\n");   
        
        if(x==height)
           velocity=-velocity;
        if(x==0)
           velocity=-velocity;
    }
    return 0;
 }

四、斜著彈跳的小球

下面讓程序更有趣,使小球斜著彈跳,主要思路是增加x、y兩個方向的速度控制變量velocity_x、velocity_y,初值為1;velocity_x碰到上、下邊界后改變正負(fù)號,velocity_y碰到左、右邊界后改變正負(fù)號。

 #include<stdio.h>
 #include<stdlib.h>
 int main()
 {
     int i,j;
    int x=0;
    int y=5;
    
    int velocity_x=1;
    int velocity_y=1;
    int left=0;
    int right=20;
    int top=0;
    int bottom=10;
    
    while(1)
    {
        x=x+velocity_x;
        y=y+velocity_y;
        
        system("cls");
        //
        for(i=0;i<x;i++)
           printf("\n");
        //   
        for(j=0;j<y;j++)
           printf(" ");
        printf("o");
        printf("\n");   
        
        if(x==top||x==bottom)
           velocity_x=-velocity_x;
        if(y==left||y==right)
           velocity_y=-velocity_y;
    }
    return 0;
 }

五、控制小球彈跳的速度

以上反彈球的速度可能過快,為了降低反彈球的速度,以使用Sleep 函數(shù)(#include<windows.h>)。比如 sleep(10)表示程序執(zhí)行到此處暫停 10ms,從而控制小球彈跳的速度。

六、完整代碼

 #include<stdio.h>
 #include<stdlib.h>
 #include<windows.h>
 int main()
 {
     int i,j;
    int x=0;
    int y=5;
    
    int velocity_x=1;
    int velocity_y=1;
    int left=0;
    int right=20;
    int top=0;
    int bottom=10;
    
    while(1)
    {
        x=x+velocity_x;
        y=y+velocity_y;
        
        system("cls");
        //
        for(i=0;i<x;i++)
           printf("\n");
        //   
        for(j=0;j<y;j++)
           printf(" ");
        printf("o");
        printf("\n"); 
        Sleep(10);  
        
        if(x==top||x==bottom)
           velocity_x=-velocity_x;
        if(y==left||y==right)
           velocity_y=-velocity_y;
    }
    return 0;
 }

以上就是C++實現(xiàn)簡易反彈小球游戲的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C++反彈小球游戲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談C語言的字符串分割

    淺談C語言的字符串分割

    下面小編就為大家?guī)硪黄獪\談C語言的字符串分割。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • C語言數(shù)據(jù)結(jié)構(gòu)之判斷循環(huán)鏈表空與滿

    C語言數(shù)據(jù)結(jié)構(gòu)之判斷循環(huán)鏈表空與滿

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之判斷循環(huán)鏈表空與滿的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • c++如何實現(xiàn)歸并兩個有序鏈表

    c++如何實現(xiàn)歸并兩個有序鏈表

    這篇文章主要介紹了c++如何實現(xiàn)歸并兩個有序鏈表,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • QT委托代理機(jī)制之Model?View?Delegate使用方法詳解

    QT委托代理機(jī)制之Model?View?Delegate使用方法詳解

    這篇文章主要介紹了QT委托代理機(jī)制之Model?View?Delegate的使用方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C++分析構(gòu)造函數(shù)與析造函數(shù)的特點梳理

    C++分析構(gòu)造函數(shù)與析造函數(shù)的特點梳理

    本文對類的構(gòu)造函數(shù)和析構(gòu)函數(shù)進(jìn)行總結(jié),主要包括了構(gòu)造函數(shù)的初始化、重載、使用參數(shù)和默認(rèn)參數(shù),拷貝構(gòu)造函數(shù)和析構(gòu)函數(shù),希望能幫助讀者在程序開發(fā)中更好的理解類,屬于C/C++基礎(chǔ)
    2022-05-05
  • C語言詳解strcmp函數(shù)的分析及實現(xiàn)

    C語言詳解strcmp函數(shù)的分析及實現(xiàn)

    strcmp函數(shù)語法為“int strcmp(char *str1,char *str2)”,其作用是比較字符串str1和str2是否相同,如果相同則返回0,如果不同,前者大于后者則返回1,否則返回-1
    2022-05-05
  • C++編譯原理之求解First集合

    C++編譯原理之求解First集合

    這篇文章主要介紹的是C++/編譯原理求解First集合,本文將圍繞該話題詳細(xì)展開全文,需要的小伙伴可以參考一下
    2021-10-10
  • c++ minicsv庫的編譯錯誤與解決方案

    c++ minicsv庫的編譯錯誤與解決方案

    有一個項目需要寫csv文件以呈現(xiàn)數(shù)據(jù)。Github上有一個關(guān)于csv的輕量級讀寫庫minicsv,于是下載之。但是編譯example時出現(xiàn)了以下問題
    2016-11-11
  • C語言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法

    C語言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法

    這篇文章主要介紹了C語言的isatty函數(shù)和ttyname函數(shù)以及sendmsg函數(shù)用法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C++中的Reactor原理與實現(xiàn)

    C++中的Reactor原理與實現(xiàn)

    reactor設(shè)計模式是event-driven?architecture的一種實現(xiàn)方式,處理多個客戶端并發(fā)的向服務(wù)端請求服務(wù)的場景,每種服務(wù)在服務(wù)端可能由多個方法組成,這篇文章主要介紹了Reactor原理與實現(xiàn),需要的朋友可以參考下
    2022-07-07

最新評論

广昌县| 高安市| 寻乌县| 信宜市| 文成县| 安庆市| 海门市| 马公市| 水富县| 大化| 深州市| 肇州县| 胶南市| 太仆寺旗| 广宗县| 德格县| 莆田市| 报价| 新宁县| 洪湖市| 天津市| 长沙市| 古交市| 阳新县| 嘉义县| 贡嘎县| 城口县| 峨边| 青阳县| 自治县| 东安县| 伊春市| 乳山市| 加查县| 宁武县| 沂南县| 九寨沟县| 仁化县| 铁岭市| 巩义市| 博罗县|