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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言小球消砖块的游戏,求大神帮忙看看这个弹弹球消砖块的游戏代码,为什么speed只能15...

發布時間:2023/12/20 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言小球消砖块的游戏,求大神帮忙看看这个弹弹球消砖块的游戏代码,为什么speed只能15... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

#include

#include

#include

#include

int ball_x,ball_y;//定義小球的x,y坐標

int v_x,v_y;//定義小球的x,y的運動速度

int high=20;

int wideth=36;//定義畫面大小

int banzi_x,banzi_y;

int banjing;

int left,right;//定義下面板子的各種參數

int score1=0;

int score2=0;//定義兩個得分

int zhuankuai_x1,zhuankuai_y1;//定義磚塊的位置

void HideCursor()

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);

}

void gotoxy(int x, int y)

{

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

COORD pos;

pos.X=x;

pos.Y=y;

SetConsoleCursorPosition(hOut, pos);

}

void initialization()//初始化各數據

{

ball_x = 0;

ball_y = wideth/2;//初始化小球的位置

v_x = 1;

v_y = 1;//初始化速度方向默認向右下角

zhuankuai_x1 = 0;

zhuankuai_y1 = 5;//初始化磚塊位置

banzi_y = 13;

banzi_x = high-2;

banjing = 3;

left = banzi_y - banjing;

right = banzi_y + banjing;//板子位置

}

void show()//顯示的位置;

{

int i,j;

gotoxy(0,0);//清屏函數

for(i=0;i<=high;i++)

{

for(j=0;j<=wideth;j++)

{

if((i == ball_x) && (j == ball_y))

printf("o");//輸出小球

else if((i == zhuankuai_x1) && (j == zhuankuai_y1))

printf("B");//輸出磚塊

else if(j == wideth)

printf("|");//輸出右邊界

else if((i == banzi_x) && (j <= right) && (j >= left))

printf("*");//輸出板子

else if(i == high)

printf("_");//輸出下邊界

else

printf(" ");

}

printf("\n");

}

printf("你的得分:%d\n",score1);

printf("你的彈數是:%d",score2/15);//輸出兩個得分

}

void updatenowithkeyboard()//鍵盤輸入無關的參量

{

if((ball_x == banzi_x-1) && (ball_y <= right) && (left <= ball_y))

{

v_x = (-1) * v_x;

v_y = (-1) * v_y;

score2++;

}//小球彈到板子上時反彈,并且彈數得分增加

static int speed=0;

if(speed < 15)

speed++;

if(speed == 15)

{

ball_x = ball_x + v_x;

ball_y = ball_y + v_y;

speed=0;

}//定義一個靜態變量,使小球的速度變慢,板子速度不受影響,但是不知道為什么數字只能設置為15,其他的小球都顯示不了

if(ball_x == 0)

v_x = (-1) * v_x;

if((ball_y == 0) || (ball_y == wideth))

v_y = (-1) * v_y;//小球碰到上邊界,左右邊界時反彈

if((ball_x == zhuankuai_x1) && (ball_y == zhuankuai_y1))

{

zhuankuai_x1 = rand() % wideth;

score1++;

}//小球碰到磚塊時,磚塊隨機任意位置生成一個,得分+1

if(ball_x > banzi_x)

{

printf("\nGAME OVER\n");

exit(0);//當小球落到板子下面時,游戲結束

}

}

void updatewithkeyboard()//鍵盤輸入有關的參量

{

char input;

if(kbhit())

{

input = getch();

if(input == 'a')

banzi_y--;

if(input == 'd')

banzi_y++;

left = banzi_y - banjing;

right = banzi_y + banjing;

}//用a和d來控制板子的左右移動

}

int main()

{

HideCursor();

initialization();

while(1)

{

show();

updatewithkeyboard();

updatenowithkeyboard();

}

return 0;

}

詳情在updatenowithkeyboard()這個函數中,為什么改變speed的值小球就不顯示了

總結

以上是生活随笔為你收集整理的c语言小球消砖块的游戏,求大神帮忙看看这个弹弹球消砖块的游戏代码,为什么speed只能15...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。