接著前面的成果,我們繼續(xù)為我們的彈球游戲添加擋板(即玩家控制的擋板)及右墻,想一想我們的游戲機(jī),游戲除了游戲畫面區(qū)域,是不是還有個顯示分?jǐn)?shù)成績的區(qū)域?沒錯這個右墻就是分離用的
那么要知道easyX的中繪制一條線比較窄不好看,我們選擇繪制一個像一條線的矩形,方法是使用fillrectangle函數(shù),原型如下:
void fillrectangle( int left, int top, int right, int bottom);
我們分別傳入其左上和右下兩個點的坐標(biāo)位置即可,寬度設(shè)置為5個像素,默認(rèn)白色就可以,大家也可以根據(jù)自己喜好修改
參考代碼如下:
//彈球游戲 //www.sztianhecheng.cn #include <graphics.h> // 引用圖形庫頭文件 #include <conio.h> #define WIDTH 640 #define HIGH 480 #define R 10 int main() { int i; int Vx=3,Vy=3; int x=(WIDTH-200)/2,y=HIGH/2; //表示小球初始圓心坐標(biāo) initgraph(WIDTH, HIGH); // 創(chuàng)建繪圖窗口 640x480 像素 fillrectangle(WIDTH-200,0,WIDTH-195,HIGH);//繪制右墻 BeginBatchDraw(); while(1) { //繪制小球圖案 setfillcolor(GREEN); fillcircle(x,y,R); setfillcolor(YELLOW); fillrectangle(150,HIGH-5,250,HIGH);//繪制擋板 FlushBatchDraw(); Sleep(5); //原位置擦除小球圖案 setcolor(BLACK); setfillcolor(BLACK); fillcircle(x,y,R); x=x+Vx; y=y+Vy; if(x<=R || x>=WIDTH-203-R) { Vx=-Vx; // getch(); } if(y<=R || y>=HIGH-R) Vy=-Vy; } EndBatchDraw(); getch(); // 按任意鍵繼續(xù) closegraph(); // 關(guān)閉繪圖窗口 return 0; }
注意代碼每次除了新增功能外,還會修改原先的代碼,進(jìn)行優(yōu)化或統(tǒng)一,請大家務(wù)必理解透徹,后面再統(tǒng)一代碼才會覺得理所當(dāng)然。
新增擋板和右墻后的效果如下:
大家可以根據(jù)自己喜好調(diào)整顏色、寬度等等。下節(jié)我們開始控制擋板移動,加油~
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程