C语言之弹跳小球

文章介绍了如何使用C语言编写一个简单的弹跳小球程序,涉及到了清屏函数system(cls)清除屏幕以及Sleep函数控制程序延迟,通过改变坐标和速度模拟小球上下左右的弹跳,并在碰到边界时改变运动方向,最后展示了让小球斜向弹跳的实现方式。
摘要由CSDN通过智能技术生成

目录

扩展知识

清屏函数system("cls")

Sleep函数

弹跳小球的步骤


扩展知识

清屏函数system("cls")

  • 该函数位于stdlib.h函数库,头文件要机上#include <stdlib.h>。
  • 作用:该函数可以在循环中清空上一次的画面,在这里实现飞机的自由移动(要不然飞机移动就跟重影一样,跟李白技能一样)
  • 使用方法:system("cls");

 

Sleep函数

定义:属于windows.h函数库。根据不同系统和编译器,有时候也写做cwindow.h。头文件加上#include <windows.h>或者#include<cwindow.h>。
作用:在此处让程序运行暂缓***毫秒。
一般形式:Sleep();S是大写,括号内数字默认单位是毫秒。(根据不同系统和编译器,有时候也有可能是小写s)

标识符命名规则

  • 不能是关键字
  • 只能由字母、数字和下划线组成,且区分字母大小写。
  • 名称的第一个字符必须是字母或下划线,不能是数字。
  • 名称中间不能有空格。
  • 标识符可以为任意长度,但最好不要超过31个字符。
  • 不要与C语言库函数名称相同 

弹跳小球的步骤

第一步,显示静止的小球

#include<stdio.h>
int main()
{
	int i, j;
	int x = 5;
	int y = 20;
    for (i = 0; i < x; i++)
		printf("\n");
	for (j = 0; j < y; j++)
		printf(" ");
	printf("O");
	printf("\n");
	return 0;
}

第二步,通过改变小球坐标的变量,让小球下落 

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i, j;
	int x = 1;
	int y = 10;
	for(i = 0;i < y;i++)
	{
		system("cls");
		for (i = 0; i < x; i++)
			printf("\n");
		for (j = 0; j < y; j++)
			printf(" ");
		printf("O");
		printf("\n");
	}
	return 0;
}

第三步,实现小球的上下在上面一步代码的基础上,增加记录速度的变量,小球的新位置=旧位置+速度。判断小球到达上下边界时,速度改变方向,即改变正负号。

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i, j;
	int x = 0;
	int y = 5;
	int left = 0;
	int right = 20;
	int top = 0;
	int buttom = 10;
	int velocity_x = 1;
	int velocity_y = 1;
	while (1)
	{
		x += velocity_x;
		y += velocity_y;
		system("cls");
		for (i = 0; i < x; i++)
			printf("\n");
		for (j = 0; j < y; j++)
			printf(" ");
		printf("O");
		printf("\n");
		//小球位于边界时改变小球的速度方向
		if (x == top||x==buttom)
			velocity_x = -velocity_x;
		if(y==left||y==right)
			velocity_y = -velocity_y;
	}
	return 0;
}

第四步,让程序更有趣,让小球斜着弹跳。主要思路是增加x,y两个方向的速度控制变量,一个碰到上下边界后改变正负号,一个碰到左右边界后改变正负号。

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main() 
{
	int i, j;
	int x = 0;
	int y = 5;
	int left = 0;
	int right = 20;
	int top = 0;
	int buttom = 10;
	int velocity_x = 1;
	int velocity_y = 1;
	while (1)
	{
		x += velocity_x;
		y += velocity_y;
		system("cls");
		for (i = 0; i < x; i++)
			printf("\n");
		for (j = 0; j < y; j++)
			printf(" ");
		printf("O");
		printf("\n");
		Sleep(10);
		//小球位于边界时改变小球的速度方向
		if (x == top||x==buttom)
			velocity_x = -velocity_x;
		if(y==left||y==right)
			velocity_y = -velocity_y;
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值