C语言实现弹跳小球

简单的控制台弹跳小球

#include <stdio.h>

#include <stdlib.h>
#include <conio.h>
#include <windows.h>


// 全局变量
	int x,y;					//小球坐标 
	int velocity_x,velocity_y ;	//速度 
	int left,right,top,bottom; //边界 


void gotoxy(int x,int y)  //光标移动到(x,y)位置
{
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(handle,pos);
}


void HideCursor() // 用于隐藏光标
{
	CONSOLE_CURSOR_INFO cursor_info = {1, 0};  // 第二个值为0表示隐藏光标
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void startup() // 数据初始化
{
	x = 1;
	y = 5;
	velocity_x = 1;			//速度方向 
	velocity_y = 1;
	left = 0;
	right = 30;
	top = 0;
	bottom = 15;


	HideCursor(); 	// 隐藏光标
}


void show()  // 显示画面
{
	
	int i,j;
	for (i=0;i<=bottom;i++)
	{
		for (j=0;j<=right;j++)
		{


	
			if((i==x) && (j==y))
				{
					printf("o");				//打印小球 
				}
			else if ((i==0)||(i==bottom)||(j==0)||(j==right))		//打印边界 
				{
					printf("#");
				}
			else	printf(" ");
		}
		printf("\n");
	}
}	
void automation()  // 与用户输入无关的更新
{	
	x = x + velocity_x;			 
	y = y + velocity_y;
	if ((x==top)||(x==bottom))
	{
		velocity_x = -velocity_x;
		printf("\a");
	}
		
	else if ((y==left)||(y==right))
	{
		velocity_y = -velocity_y;
		printf("\a");
	}
			
	Sleep(100);		//调低小球速度 
}
int main()
{
	system("color 2f");		//改变控制台颜色 
	startup();  			// 数据初始化	
	while (1) 				//  游戏循环执行
	{
		gotoxy(0,0);  		// 清屏 
		show();  			// 显示画面
		automation();  		// 与用户输入无关的更新
	}
	return 0;
}

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值