日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

项目: 双人反弹球游戏

發(fā)布時(shí)間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目: 双人反弹球游戏 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 一、最終項(xiàng)目描述和效果
  • 二、基本框架實(shí)現(xiàn)
  • 三、異步操作的實(shí)現(xiàn)
  • 四、雙人反彈球

一、最終項(xiàng)目描述和效果

項(xiàng)目描述: 實(shí)現(xiàn)雙人玩的彈跳球游戲

最終效果圖如下:

二、基本框架實(shí)現(xiàn)

代碼如下:

#include<conio.h> #include<graphics.h> #define High 480//游戲畫面尺寸 #define Width 640//全局變量 int ball1_x,ball1_y;//小球1的坐標(biāo) int ball2_x,ball2_y;//小球2的坐標(biāo) int radius;void startup()//數(shù)據(jù)的初始化 {ball1_x=Width/3;ball1_y=High/3;ball2_x=Width*2/3;ball2_y=High*2/3;radius=20;initgraph(Width,High);BeginBatchDraw(); }void clean()//消除畫面 {setcolor(BLACK);setfillcolor(BLACK);fillcircle(ball1_x,ball1_y,radius);fillcircle(ball2_x,ball2_y,radius); }void show()//顯示畫面 {setcolor(GREEN);setfillcolor(GREEN);fillcircle(ball1_x,ball1_y,radius);//繪制綠圓setcolor(RED);setfillcolor(RED);fillcircle(ball2_x,ball2_y,radius);//繪制紅圓FlushBatchDraw();Sleep(3); }void updateWithoutInput()//與用戶輸入無關(guān)的更新 {}void updateWithInput()//與用戶輸入有關(guān)的更新 {char input;if(kbhit())//判斷是否有輸入{input=getch();int step=10;if(input=='a')ball1_x-=step;if(input=='d')ball1_x+=step;if(input=='w')ball1_y-=step;if(input=='s')ball1_y+=step;if(input=='4')ball2_x-=step;if(input=='6')ball2_x+=step;if(input=='8')ball2_y-=step;if(input=='5')ball2_y+=step;} }void gameover() {EndBatchDraw();closegraph(); }int main(void) {startup();//數(shù)據(jù)的初始化while(1){clean();//把之前繪制的內(nèi)容取消updateWithoutInput();//與用戶輸入無關(guān)的更新updateWithInput();//與用戶輸入有關(guān)的更新show();//顯示新畫面}gameover();//游戲結(jié)束,進(jìn)行后續(xù)處理return 0; } 你會(huì)發(fā)現(xiàn)這有一個(gè)弊端: 雙方同一時(shí)刻只能有一個(gè)運(yùn)行,不能同時(shí)運(yùn)行。

三、異步操作的實(shí)現(xiàn)


代碼如下:

#include<conio.h> #include<graphics.h> #define High 480//游戲畫面尺寸 #define Width 640//全局變量 int ball1_x,ball1_y;//小球1的坐標(biāo) int ball2_x,ball2_y;//小球2的坐標(biāo) int radius;void startup()//數(shù)據(jù)的初始化 {ball1_x=Width/3;ball1_y=High/3;ball2_x=Width*2/3;ball2_y=High*2/3;radius=20;initgraph(Width,High);BeginBatchDraw(); }void clean()//消除畫面 {setcolor(BLACK);setfillcolor(BLACK);fillcircle(ball1_x,ball1_y,radius);fillcircle(ball2_x,ball2_y,radius); }void show()//顯示畫面 {setcolor(GREEN);setfillcolor(GREEN);fillcircle(ball1_x,ball1_y,radius);//繪制綠圓setcolor(RED);setfillcolor(RED);fillcircle(ball2_x,ball2_y,radius);//繪制紅圓FlushBatchDraw();Sleep(3); }void updateWithoutInput()//與用戶輸入無關(guān)的更新 {}void updateWithInput()//與用戶輸入有關(guān)的更新 {int step=1;if((GetAsyncKeyState(0x41)&0x8000))//aball1_x-=step;if((GetAsyncKeyState(0x44)&0x8000))//dball1_x+=step;if((GetAsyncKeyState(0x57)&0x8000))//wball1_y-=step;if((GetAsyncKeyState(0x53)&0x8000))//sball1_y+=step;if((GetAsyncKeyState(VK_LEFT)&0x8000))//左方向鍵ball2_x-=step;if((GetAsyncKeyState(VK_RIGHT)&0x8000))//右方向鍵ball2_x+=step;if((GetAsyncKeyState(VK_UP)&0x8000))//上方向鍵ball2_y-=step;if((GetAsyncKeyState(VK_DOWN)&0x8000))//下方向鍵ball2_y+=step; }void gameover() {EndBatchDraw();closegraph(); }int main(void) {startup();//數(shù)據(jù)的初始化while(1){clean();//把之前繪制的內(nèi)容取消updateWithoutInput();//與用戶輸入無關(guān)的更新updateWithInput();//與用戶輸入有關(guān)的更新show();//顯示新畫面}gameover();//游戲結(jié)束,進(jìn)行后續(xù)處理return 0; }

效果圖如下:

四、雙人反彈球

代碼如下:

#include<conio.h> #include<graphics.h> #include<Windows.h> #define High 480//游戲畫面尺寸 #define Width 640//全局變量 int ball_x,ball_y;//小球的坐標(biāo) int ball_vx,ball_vy;//小球2的速度 int bar1_left,bar1_right,bar1_top,bar1_bottom;//擋板1的上下左右位置坐標(biāo) int bar2_left,bar2_right,bar2_top,bar2_bottom;//擋板2的上下左右位置坐標(biāo) int bar_height,bar_width;//擋板的高度和寬度 int radius;void startup()//數(shù)據(jù)的初始化 {ball_x=Width/2;ball_y=High/2;ball_vx=1;ball_vy=1;radius=20;bar_width=Width/30;bar_height=High/4;bar1_left=Width*1/20;//擋板1的數(shù)據(jù)初始化bar1_top=High/4;bar1_right=bar1_left+bar_width;bar1_bottom=bar1_top+bar_height;bar2_left=Width*18.5/20;//擋板2的數(shù)據(jù)初始化bar2_top=High/4;bar2_right=bar2_left+bar_width;bar2_bottom=bar2_top+bar_height;initgraph(Width,High);BeginBatchDraw(); }void clean()//消除畫面 {setcolor(BLACK);setfillcolor(BLACK);fillcircle(ball_x,ball_y,radius);fillcircle(ball_x,ball_y,radius);bar(bar1_left,bar1_top,bar1_right,bar1_bottom);//繪制擋板bar(bar2_left,bar2_top,bar2_right,bar2_bottom); }void show()//顯示畫面 {setcolor(GREEN);setfillcolor(GREEN);fillcircle(ball_x,ball_y,radius);//繪制綠圓setcolor(RED);setfillcolor(RED);bar(bar1_left,bar1_top,bar1_right,bar1_bottom);bar(bar2_left,bar2_top,bar2_right,bar2_bottom);FlushBatchDraw();Sleep(3); }void updateWithoutInput()//與用戶輸入無關(guān)的更新 {//擋板和小球碰撞,小球反彈if(ball_x+radius>=bar2_left&&ball_y+radius>=bar2_top&&ball_y+radius<bar2_bottom)ball_vx=-ball_vx;else if(ball_x-radius<=bar1_right&&ball_y+radius>=bar1_top&&ball_y+radius<bar1_bottom)ball_vx=-ball_vx;//更新小球的坐標(biāo)ball_x=ball_x+ball_vx;ball_y=ball_y+ball_vy;if((ball_x<=radius)||(ball_x>+Width-radius))ball_vx=-ball_vx;if((ball_y<=radius)||(ball_y>+High-radius))ball_vy=-ball_vy;}void updateWithInput()//與用戶輸入有關(guān)的更新 {int step=1;if((GetAsyncKeyState(0x57)&0x8000))//wbar1_top-=step;if((GetAsyncKeyState(0x53)&0x8000))//sbar1_top+=step;if((GetAsyncKeyState(VK_UP)&0x8000))//上方向鍵bar2_top-=step;if((GetAsyncKeyState(VK_DOWN)&0x8000))//下方向鍵bar2_top+=step;if(bar1_top<0)//判斷擋板是否超過屏幕bar1_top+=step;if(bar2_top<0)bar2_top+=step;if(bar1_top+bar_height>High)bar1_top-=step;if(bar2_top+bar_height>High)bar2_top-=step;bar1_bottom=bar1_top+bar_height;bar2_bottom=bar2_top+bar_height; }void gameover() {EndBatchDraw();closegraph(); }int main(void) {startup();//數(shù)據(jù)的初始化while(1){clean();//把之前繪制的內(nèi)容取消updateWithoutInput();//與用戶輸入無關(guān)的更新updateWithInput();//與用戶輸入有關(guān)的更新show();//顯示新畫面}gameover();//游戲結(jié)束,進(jìn)行后續(xù)處理return 0; }

效果圖如下:

總結(jié)

以上是生活随笔為你收集整理的项目: 双人反弹球游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人妻无码一区二区三区免费 | 国产激情无套内精对白视频 | 中文字幕女同女同女同 | 天堂在线免费观看 | 黄色在线观看网址 | 中文字幕日韩一区二区 | 亚洲毛片网 | 天天色av| 一区二区三区在线观看av | 依人综合网 | 成年人免费视频播放 | 国产色99 | 精品女厕偷拍一区二区 | 丁香六月婷婷 | 伊人视频 | 久久精品色 | 国产一级理论片 | 综合久久91| 欧美 亚洲 激情 一区 | 久久久国产精品一区 | 在线观看成人动漫 | 国产精品suv一区二区88 | 96精品| 97成人精品视频在线观看 | 美国黄色片网站 | 成人mv| 午夜影院免费视频 | 精品人妻一区二区三区四区久久 | 这里只有精品在线观看 | 免费高清成人 | 久久国产精品久久国产精品 | 久久99久久99精品免视看婷婷 | 成人在线不卡视频 | 老司机性视频 | 亚洲精品乱码久久久久久久 | 少妇在线观看 | 亚洲av无码国产精品久久 | 蜜臀999| 少妇xxxx| 在线视频观看免费 | 国产精品自拍电影 | 久久久久人妻一道无码AV | 综合网久久 | 欧美人与zoxxxx另类 | 亚洲av毛片一区二二区三三区 | 中文字幕av不卡 | 色吊丝一区二区 | 99久久久久成人国产免费 | 成人小视频免费在线观看 | 一区二区不卡视频 | 亚洲免费福利 | 日韩免费看片 | 96日本xxxxxⅹxxx17 | 7777精品久久久久久 | 国内精品免费视频 | 成人夜间视频 | 337p粉嫩色噜噜噜大肥臀 | 日韩欧美一二区 | 日本美女在线 | 日韩一区二区三区视频在线观看 | 丰满女邻居的色诱4hd | 人人草在线| 灌满闺乖女h高h调教尿h | 亚洲精品一区二区三区蜜臀 | 女优一区| 中文字幕在线观看你懂的 | 激情五月婷婷 | 亚洲精品高潮久久久久久久 | 公肉吊粗大爽色翁浪妇视频 | 亚洲在线视频 | 日本视频网 | 日韩免费久久 | 亚洲天堂二区 | 日韩精品免费 | 国产亚洲一区二区在线 | 国产一级美女 | 色老头网址| 篠田优在线观看 | 性色av一区二区三区在线观看 | 69色堂| 成人国产免费视频 | 亚洲乱熟女一区二区 | 偷拍一区二区三区四区 | 97香蕉久久夜色精品国产 | 成人av在线资源 | 色臀| 亚洲欧洲综合av | av观看一区 | 亚洲午夜精品久久久久久浪潮 | 欧美日a| 精品一区二区三区四区视频 | 天天干天天舔天天操 | 国产精品国语自产拍在线观看 | 一区二区三区欧美视频 | 亚洲高清在线观看视频 | 欧美日韩色 | 青青草99| 98成人网| 婷婷精品一区二区三区 |