欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

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

一、顯示靜止的小球

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

#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á)上、下邊界時(shí)改變方向,即改變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兩個(gè)方向的速度控制變量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++實(shí)現(xiàn)簡易反彈小球游戲的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C++反彈小球游戲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++棧(stack)的模板類實(shí)現(xiàn)代碼

    C++棧(stack)的模板類實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C++棧(stack)的模板類實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • VS2019調(diào)試C語言程序(監(jiān)視操作)的詳細(xì)步驟

    VS2019調(diào)試C語言程序(監(jiān)視操作)的詳細(xì)步驟

    在很多時(shí)候我們在寫程序的過程中會(huì)發(fā)現(xiàn)一些非編程錯(cuò)誤的問題,這樣的問題很難直接分辨出來,但是我們可以用調(diào)試了一步一步的模擬程序運(yùn)行的過程,來找出程序的錯(cuò)誤,下面這篇文章主要給大家介紹了關(guān)于VS2019調(diào)試C語言程序(監(jiān)視操作)的詳細(xì)步驟,需要的朋友可以參考下
    2022-11-11
  • Linux環(huán)境g++編譯GDAL動(dòng)態(tài)庫操作方法

    Linux環(huán)境g++編譯GDAL動(dòng)態(tài)庫操作方法

    下面小編就為大家?guī)硪黄狶inux環(huán)境g++編譯GDAL動(dòng)態(tài)庫操作方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • C/C++?實(shí)現(xiàn)動(dòng)態(tài)資源文件釋放的方法

    C/C++?實(shí)現(xiàn)動(dòng)態(tài)資源文件釋放的方法

    當(dāng)我們開發(fā)Windows應(yīng)用程序時(shí),通常會(huì)涉及到使用資源(Resource)的情況。資源可以包括圖標(biāo)、位圖、字符串等,它們以二進(jìn)制形式嵌入到可執(zhí)行文件中,這篇文章主要介紹了C/C++?實(shí)現(xiàn)動(dòng)態(tài)資源文件釋放,需要的朋友可以參考下
    2023-12-12
  • 淺析內(nèi)存對齊與ANSI C中struct型數(shù)據(jù)的內(nèi)存布局

    淺析內(nèi)存對齊與ANSI C中struct型數(shù)據(jù)的內(nèi)存布局

    當(dāng)在C中定義了一個(gè)結(jié)構(gòu)類型時(shí),它的大小是否等于各字段(field)大小之和?編譯器將如何在內(nèi)存中放置這些字段?ANSI C對結(jié)構(gòu)體的內(nèi)存布局有什么要求?而我們的程序又能否依賴這種布局
    2013-09-09
  • 使用C++和Crypto++庫實(shí)現(xiàn)AES加密與解密

    使用C++和Crypto++庫實(shí)現(xiàn)AES加密與解密

    在這篇博客中,我們將深入探討如何利用C++和Crypto++庫實(shí)現(xiàn)高效且安全的AES加密與解密機(jī)制,Crypto++是一款高度認(rèn)可的免費(fèi)C++類庫,文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-01-01
  • C++實(shí)現(xiàn)LeetCode(647.回文子字符串)

    C++實(shí)現(xiàn)LeetCode(647.回文子字符串)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(647.回文子字符串),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言 操作符#與##使用方法詳解

    C語言 操作符#與##使用方法詳解

    在類函數(shù)宏中(帶參數(shù)的宏),#號作為一個(gè)預(yù)處理運(yùn)算符,可以把記號轉(zhuǎn)換成字符串。##相當(dāng)于連接符,它會(huì)將兩邊的內(nèi)容連接起來,形成新的標(biāo)識(shí)符,下面請看詳細(xì)的教程
    2022-04-04
  • C語言的空類型指針,空指針,野指針詳解

    C語言的空類型指針,空指針,野指針詳解

    這篇文章主要介紹了C語言的空類型指針,空指針,野指針的詳解及用法示例,介紹了其相關(guān)概念,然后分享了幾種用法,具有一定參考價(jià)值。需要的朋友可以了解下。
    2021-09-09
  • 在VC中隱藏控制臺(tái)程序窗口的實(shí)現(xiàn)代碼

    在VC中隱藏控制臺(tái)程序窗口的實(shí)現(xiàn)代碼

    大家都知道,當(dāng)編寫一個(gè)win32 console application時(shí),當(dāng)運(yùn)行此類程序的時(shí)候默認(rèn)情況下會(huì)有一個(gè)類似dos窗口的console窗口,但是有的時(shí)候我們只想在程序中運(yùn)行一段功能代碼,不希望顯示這個(gè)console窗口,讓代碼執(zhí)行完畢之后程序自動(dòng)退出
    2013-04-04

最新評論