C语言实现反弹球小游戏
本文为大家分享了C语言反弹球游戏的具体代码,供大家参考,具体内容如下
这是利用函数写的C语言小游戏,用来检验自己的学习成果
反弹球的实现主要有几个子函数组成
问题也在于如何实现小球的下落,以及碰撞得分等情况
#include#include #include //定义全局变量 inthigh,width;//游戏边界 intball_x,ball_y;//小球位置 intball_vx,ball_vy;//小球速度 intposition_x,position_y;//挡板中心坐标 intradius;//挡板半径 intleft,right;//键盘左右边界 intball_number;//反弹小球次数 intblock_x,block_y;//方块的位置 intscore;//消掉方块的个数 voidHideCursor()//隐藏光标 { CONSOLE_CURSOR_INFOcursor_info={1,0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info); } voidgotoxy(intx,inty)//光标移动到(x,y)位置,清屏函数 { HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE); COORDpos; pos.X=x; pos.Y=y; SetConsoleCursorPosition(handle,pos); } voidstartup()//数据初始化 { high=18;//定义边界 width=26; ball_x=0;//小球坐标 ball_y=width/2; ball_vx=1;//小球速度方向 ball_vy=1; position_x=high-1;//挡板中心坐标 position_y=width/2; radius=5;//挡板半径 left=position_y-radius;//键盘边界 right=position_y+radius; block_x=0;//方块位置 block_y=width/2-4; ball_number=0;//反弹小球个数 score=0;//消掉小球个数 HideCursor(); } voidshow()//显示界面 { gotoxy(0,0); inti,j; for(i=0;i<=high;i++) { for(j=0;j<=width;j++) { if((i==ball_x)&&(j==ball_y))//输出小球 printf("0"); elseif((i==block_x)&&(j==block_y))//输出滑块//输出下边界 printf("@"); elseif(i==high)//输出下边界 printf("-"); elseif(j==width)//输出右边界 printf("|"); elseif((i==high-1)&&(j>left)&&(j =left)&&(ball_y<=right)) { ball_number++; //printf("\a"); } else { printf("游戏失败\n"); system("pause"); exit(0); } } ball_x=ball_x+ball_vx;//小球向速度方向移动 ball_y=ball_y+ball_vy; if((ball_x==0)||(ball_x==high-2))//小球撞到上下边界 ball_vx=-ball_vx; if((ball_y==0)||(ball_y==width-1))//小球撞到左右边界 ball_vy=-ball_vy; if((block_x==ball_x)&&(block_y==ball_y))//小球撞到滑块 { block_y=rand()%width-1; score++; } Sleep(120); } voidupdateWithInpute()//与用户输入有关的更新 { charinput; if(kbhit()) { input=getch(); if((input=='a')&&(left>=0)) { position_y--; left=position_y-radius;//键盘边界 right=position_y+radius; } if((input=='d')&&(right 小编之前也收藏了一段代码:C语言实现小球反弹,分享给大家
#include#include #include voidball()//1.画出小球 { printf("\t\t\t◎"); } intmain() { inth=20;//球的高度初始化为20 inti,j;//i是用来确定球的起点与终点,j是确定球的位置 intder=1;//判断等于1时球下落,为0时球上升 while(h>0)//高度大于0时,球都在动(当高度为0时停止) { if(der==1) { for(i=20-h;i<20;i++)//确定起点和终点下落过程 { system("cls"); for(j=0;j<=i;j++)//确定球的位置 { printf("\n"); } ball(); Sleep(50); } der=0; } else { h=h*8/9;//强起来高度是原来的9分之8 for(i=20;i>=20-h;i--)//确定起点和终点上升过程 { system("cls"); for(j=0;j<=i;j++)//确定球的位置 { printf("\n"); } ball(); Sleep(50); } der=1; } } return0; } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。