Advertisement

一、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)

还没有任何评论哟~