一、C语言小游戏之弹跳的小球
发布时间
阅读量:
阅读量
目录
1.1.显示静止的小球
1.1.1.解决方法:
1.1.2.代码:
1.2.小球下落
1.2.1.解决方法:
1.2.2.代码:
1.3.上下弹跳的小球
1.3.1.解决方法:
1.3.2.代码:
1.4.斜着弹跳的小球
1.4.1.解决方案:
1.4.2.代码:
1.5.控制小球弹跳的速度
1.5.1.解决方法:
1.5.2.代码:
1.1.显示静止的小球
目标:在屏幕一确定位置显示出一个静止的小球(如‘o’)。
1.1.1.解决方法:
用x和y来确定小球的坐标,通过循环输出\n和空格来在小球上方和左方腾出空间,最后输出小球‘o’。
1.1.2.代码:
#include<stdio.h>
void main()
{
int i,j,x=10,y=10; //坐标
for(i=0;i<x;i++)
printf("\n"); //输出小球上面空位
for(j=0;j<y;j++)
printf(" "); //输出小球左边空位
printf("o");
printf("\n");
}
1.2.小球下落
目标:在步骤1的基础上,使小球不断下落。
1.2.1.解决方法:
将步骤1中的x不断加1,进而使小球不断下落,同时通过清屏函数system("cls")去除之前的路径;注意,清屏函数在(#include<stdlib.h>)中。
1.2.2.代码:
#include<stdio.h>
#include<stdlib.h> //清屏函数头文件
void main()
{
int i,j,x=1,y=10;
for(x=1;x<25;x++) //使x不断增加,小球下降
{
system("cls"); //清屏函数
for(i=0;i<x;i++)
printf("\n"); //输出小球上方空位
for(j=0;j<y;j++)
printf(" "); //输出小球左方空位
printf("o");
printf("\n");
}
}
1.3.上下弹跳的小球
目标:使小球在上下边界之间不断弹跳。
1.3.1.解决方法:
引入新的变量v,用x+v来表示小球的运动,且在小球触碰上下边界时,使v变号,进而使小球反向。
1.3.2.代码:
#include<stdlib.h>
void main()
{
int i,j,x=1,y=10,v=1; //在之前的基础上引入新变量速度v
for(x=1;x<25;x+=v) //用x=x+v来表示不断移动的坐标
{
system("cls");
for(i=0;i<x;i++)
printf("\n");
for(j=0;j<y;j++)
printf(" ");
printf("o");
printf("\n");
if(x==24) //在到达下边界时速度取负,调转方向
v=-v;
if(x==0) //在到达上边界时速度取负,调转方向
v=-v;
}
}
1.4.斜着弹跳的小球
目标:让小球在横向和纵向两个方向不断变换坐标,并且触碰到边界后弹回。
1.4.1.解决方案:
仿照步骤2和3,将y坐标也不断地与y方向速度相加,且在小球与左右边界接触时也将速度反向,从而实现目的。
1.4.2.代码:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,j,x,y,vx=1,vy=1; //再次引入y方向速度vy
for(x=1,y=1;(x<25)&&(y<10);(x+=vx)&&(y+=vy))//将各个条件改为在y方向同样适用
{
system("cls");
for(i=0;i<x;i++)
printf("\n");
for(j=0;j<y;j++)
printf(" ");
printf("o");
printf("\n");
if(x==24)
vx=-vx;
if(x==0)
vx=-vx;
if(y==9) //触碰到右边界变向
vy=-vy;
if(y==0) //触碰到左边界变向
vy=-vy;
}
}
1.5.控制小球弹跳的速度
目标:因输出速度过快,不易看清小球轨迹,故需降低运行速度。
1.5.1.解决方法:
通过引入sleep函数来控制小球速度,sleep函数在(#include<windows.h>)中。
1.5.2.代码:
#include<stdio.h>
#include<stdlib.h>
#include<windows.h> //Sleep函数库函数
void main()
{
int i,j,x,y,vx=1,vy=1;
for(x=1,y=1;(x<25)&&(y<20);(x+=vx)&&(y+=vy))
{
system("cls");
for(i=0;i<x;i++)
printf("\n");
for(j=0;j<y;j++)
printf(" ");
printf("o");
printf("\n");
if(x==24)
vx=-vx;
if(x==0)
vx=-vx;
if(y==19)
vy=-vy;
if(y==0)
vy=-vy;
Sleep(50); //运行到此函数暂停50ms
}
}
全部评论 (0)
还没有任何评论哟~
