目录
1:显示静止的小球
直接用printf在屏幕上输出一个小球o,注意坐标为向下的。原点在左上角。
#include <stdio.h>
int main()
{
int i,j;
int x=5;
int y=10;
for(i=1;i<x;i++)
printf("\n"); //输出小球上面的空行
for(j=1;j<y;j++)
printf(" "); //输出小球左边的空行
printf("o"); //输出小球
return 0;
}
此时我们就得到了一个静止的小球。
o
2:竖直下落的小球
有了静止的小球之后,我们可以借助system函数来实现竖直下落的小球。system(“cls")为清屏函数。需要头文件(include <stdlib.h>)。结合循环函数不断修改小球的竖直坐标,达到小球竖直运动的效果。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
int x=1;
int y=10;
for(x=1;x<10;x++)
{
system("cls"); //清空屏幕
for(i=1;i<x;i++)
printf("\n"); //输出小球上面的空行
for(j=1;j<y;j++)
printf(" "); //输出小球左边的空行
printf("o");
}
return 0;
}
3:上下运动的小球
在上一步的基础上增加了判断量,即判断小球达到上下边界,并且改变运动方向,即改变x增量的正负值,设小球的变量值为velocity,小球的位置x=x+velocity;改变方向即改变正负号。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
int x=5;
int y=10;
int hight=20; //标明下边界
int velocity=1; //速度该变量
while(1)
{
x=x+velocity; //小球的新位置
system("cls"); //清空屏幕
for(i=1;i<x;i++)
{
printf("\n");
}
for(j=1;j<y;j++)
{
printf(" ");
}
printf("o");
printf("\n");
if(x==hight) //判断小球到达下边界
{
velocity=-velocity; //改变正负号
}
if(x==0) //判断小球到达上边界
{
velocity=-velocity;
}
}
return 0;
}
这样便得到了上下运动的小球。
4:上下左右弹动的小球
有了上下的运动,在此基础上加上左右的运动即可,同时可以用Sleep函数来控制小球的运动速度,如Sleep(50)就是在这个位置停留50ms。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
int x=5;
int y=10;
int velocity_x=1;
int velocity_y=1;
int top=0;
int botton=10;
int left=0;
int right=20;
while(1)
{
x=x+velocity_x;
y=y+velocity_y;
system("cls");
for(i=1;i<x;i++)
{
printf("\n");
}
for(j=1;j<y;j++)
{
printf(" ");
}
printf("o");
printf("\n");
Sleep(50);
if((x==top)||(x==botton))
{
velocity_x=-velocity_x;
}
if((y==left)||(y==right))
{
velocity_y=-velocity_y;
}
}
return 0;
}
这样声明了上下左右边界,并判断到达边界后改变正负号,就可以实现小球的上下左右弹动。