两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

再能實(shí)現(xiàn)小球的下落、斜著運(yùn)動(dòng)之后,這節(jié)我們來實(shí)現(xiàn)讓小球?qū)崿F(xiàn)碰墻自動(dòng)改變方向。那么接著上回的代碼大家想想應(yīng)該如何調(diào)整代碼


首先,考慮到小球碰到墻之后(這個(gè)墻就是窗口的邊界),方向是不是要改變,類似光的反射一樣,

球的反射

大家注意觀察和思考,當(dāng)球碰到墻(邊界)之后,這個(gè)球的方向改如何改變?


通過觀察可以發(fā)現(xiàn),當(dāng)球碰撞底部之后,小球的x軸方向其實(shí)是沒有變化的!而y軸方向變成的反方向!

繼續(xù)想象,如果是碰到上頂呢?是一樣的!

那么上下考慮之后,再考慮左右墻碰撞時(shí)候,類似的,小球的y軸方向是沒有變化的,而x軸方向變成的反方向!

這個(gè)時(shí)候,思路基本就清晰了,按照這個(gè)思路,我們稍作修改,加一個(gè)if邊界的判斷,將原先的循環(huán)改為while死循環(huán)使得小球會(huì)不停的碰撞運(yùn)動(dòng)。

完整代碼如下:

//彈球游戲
//www.sztianhecheng.cn
#include <graphics.h>        // 引用圖形庫頭文件
#include <conio.h>
 
#define WIDTH 640
#define HIGH 480
#define R 10
int main()
{
    int i;
	int Vx=5,Vy=5;
    int x=WIDTH/2,y=HIGH/2;                //表示小球的圓心坐標(biāo)
    initgraph(WIDTH, HIGH);    // 創(chuàng)建繪圖窗口,大小為 640x480 像素
    while(1)
    {  
        //繪制小球圖案
        setfillcolor(GREEN);   
        fillcircle(x,y,R);
        Sleep(50);
        //原位置擦除小球圖案
        setcolor(BLACK);
        setfillcolor(BLACK);
        fillcircle(x,y,R);
         
        x=x+Vx;
        y=y+Vy;
		if(x<=R || x>=WIDTH-R)
			Vx=-Vx;
		if(y<=R || y>=HIGH-R)
			Vy=-Vy;
    }
     
    getch();                // 按任意鍵繼續(xù)
    closegraph();           // 關(guān)閉繪圖窗口
    return 0;
}

代碼將原先固定的數(shù)值改成了變量,并增加了宏定義規(guī)范了代碼,運(yùn)行后效果如下圖:

小球碰撞效果


怎么樣,是不是可以了?

請(qǐng)大家理解代碼,并上機(jī)實(shí)驗(yàn)~

點(diǎn)贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)