c语言实现小球跳动的效果

第一次发文章,日后也将不定时发布一些类似这样的文章,希望大家喜欢

为了保证小球在碰到某些地方能够实现回弹,我们需要先设置一下边框:

  1. int top=0,bottom=30;//上下边框
  2. int left=0,right=40; //左右边框

这样一来,小球的可移动范围就定义完毕了,那么接下来,为了改变小球的运动方向与速度,我们还需要定义小球在x,y轴上的速度,同时定义小球的除坐标,代码如下:

  1. int speedX=1,speedY=1;
  2. int x=1,y=1;

变量定义完毕后,为了小球能够不停的运动,我们还需要用到循环结构,同时是不停的循环,我们在这里使用简单快捷的while(1)

是时候使用前面的变量了,我们先做一个“碰撞检测器”,应该不难想到需要用到if函数:

if (x == left || x == right)
	{
		speedX = -speedX;	// 设置碰撞检测(x轴
	}

	if (y == top || y == bottom)
	{
		speedY = -speedY;	// 设置碰撞检测(y轴
	}

接下来小球的坐标应该如何处理呢?这时我们就可以用到speed和初坐标了

x=x-speedX;//当然,加减都可以,下面也一样 y=y-speedY;

有了x,y的坐标,就可以进行最为关键的一步了,如何保证小球会在该坐标上呢?我们只需要空格和回车:

for (int a=0;a<y;a++)
	{
		printf("
");
	}
	
	for (int b=0;b<x;b++)
	{
		printf(" ");
	}

当然别忘了输出小球: printf(“O”);

是不是以为结束了?并没有,此时你大概会发现输出了满屏的小球,并没有达到跳动的效果,别担心,那是因为我们并没有做完,我们还需要用到system (“cls”);,也就是清屏函数,用到他,我们的还需要用到stdlib库,即: #include<stdlib.h>

现在是不是就很完美的实现了呢?

全部代码如下:

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
int x = 30, y = 20;			// 小球初坐标

int top = 0, bottom = 30;	// 边框(上下)

int speedX=1, speedY=1;			// XY轴速度

int left = 0, right = 50;	// 边框(左右)

while (1)
{
	if (x == left || x == right)
	{
		speedX = -speedX;	// 设置碰撞检测(x轴
	}

	if (y == top || y == bottom)
	{
		speedY = -speedY;	// 设置碰撞检测(y轴
	}
	                        
	x = x - speedX; // 设定小球坐标
	y = y - speedY;
	
	system("cls");
	
	for (int a=0;a<y;a++)
	{
		printf("
");
	}
	
	for (int b=0;b<x;b++)
	{
		printf(" ");
	}
	
	printf("O
");

}

return 0;

希望本文章对您有所帮助,同时如果有问题希望大佬指出,我会及时做出订正

经验分享 程序员 微信小程序 职场和发展