c语言小球消砖块的游戏,求大神帮忙看看这个弹弹球消砖块的游戏代码,为什么speed只能15...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
#include
#include
#include
#include
int ball_x,ball_y;//定義小球的x,y坐標(biāo)
int v_x,v_y;//定義小球的x,y的運(yùn)動(dòng)速度
int high=20;
int wideth=36;//定義畫面大小
int banzi_x,banzi_y;
int banjing;
int left,right;//定義下面板子的各種參數(shù)
int score1=0;
int score2=0;//定義兩個(gè)得分
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()//初始化各數(shù)據(jù)
{
ball_x = 0;
ball_y = wideth/2;//初始化小球的位置
v_x = 1;
v_y = 1;//初始化速度方向默認(rèn)向右下角
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);//清屏函數(shù)
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("你的彈數(shù)是:%d",score2/15);//輸出兩個(gè)得分
}
void updatenowithkeyboard()//鍵盤輸入無(wú)關(guān)的參量
{
if((ball_x == banzi_x-1) && (ball_y <= right) && (left <= ball_y))
{
v_x = (-1) * v_x;
v_y = (-1) * v_y;
score2++;
}//小球彈到板子上時(shí)反彈,并且彈數(shù)得分增加
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;
}//定義一個(gè)靜態(tài)變量,使小球的速度變慢,板子速度不受影響,但是不知道為什么數(shù)字只能設(shè)置為15,其他的小球都顯示不了
if(ball_x == 0)
v_x = (-1) * v_x;
if((ball_y == 0) || (ball_y == wideth))
v_y = (-1) * v_y;//小球碰到上邊界,左右邊界時(shí)反彈
if((ball_x == zhuankuai_x1) && (ball_y == zhuankuai_y1))
{
zhuankuai_x1 = rand() % wideth;
score1++;
}//小球碰到磚塊時(shí),磚塊隨機(jī)任意位置生成一個(gè),得分+1
if(ball_x > banzi_x)
{
printf("\nGAME OVER\n");
exit(0);//當(dāng)小球落到板子下面時(shí),游戲結(jié)束
}
}
void updatewithkeyboard()//鍵盤輸入有關(guān)的參量
{
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來(lái)控制板子的左右移動(dòng)
}
int main()
{
HideCursor();
initialization();
while(1)
{
show();
updatewithkeyboard();
updatenowithkeyboard();
}
return 0;
}
詳情在updatenowithkeyboard()這個(gè)函數(shù)中,為什么改變speed的值小球就不顯示了
總結(jié)
以上是生活随笔為你收集整理的c语言小球消砖块的游戏,求大神帮忙看看这个弹弹球消砖块的游戏代码,为什么speed只能15...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学不好 学软件测试能学会吗,英语差、数
- 下一篇: 按键精灵的5级开发认证,笔试题参考