当前位置:首页 > 趣味小程序 > 正文内容

【C++图形化编程】EasyX实现弹跳小球

亿万年的星光5年前 (2021-03-20)趣味小程序2806

前面的文章实现了C++控制台显示一个弹跳的小球,这篇文章使用EasyX实现一个带有界面的弹跳小球的效果。

首位,我们需要准备好EasyX。然后让EasyX画一个小的圆。然后我们使用前面学过的判断边界的函数,然后套上循环就可以简单执行了。

参考代码:

#include <graphics.h>		// 引用图形库头文件
#include<cstdio>
#include<windows.h>
int x=10,y=10;// 小球的坐标
int left,right,top,bottom; //定义左区间、右区间、上区间、下区间
int speedX=1,speedY=1; //x和y的增量
void border(int left,int right,int top, int bottom)
{
	if(x>bottom || x<top) //上下边界判断
		speedX= -1*speedX; //让增量取反
	if(y>right || y<left)  //左右边界判断
		speedY= -1*speedY;
	x=x+speedX;
	y=y+speedY;
}



int main(){
	bottom=480,right=640;
	initgraph(bottom, right);	// 创建绘图窗口,大小为 640x480 像素
	while(1){
	 border(left,right,top,bottom);
	 cleardevice();
	 fillcircle(x, y, 20);	// 画圆,圆心(200, 200),半径 100
	 //Sleep(1);
	}
	getchar();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
	return 0;
}

运行效果:


已知问题:

如果你下载下代码在VC6.0里面运行就会看到一些问题,就是圆并不是正好碰到边界才反弹的,而是往里过了一段距离才反弹的,主要原因是我们在border中 判断是x和y,也就是小球的圆心坐标,但是小球本身还有半径,所以下载下代码的人可以简单改改这个小问题。

扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

【C++图形化编程】EasyX函数~图像操作相关函数

【C++图形化编程】EasyX函数~图像操作相关函数

图像处理相关函数函数或数据类型描述IMAGE保存图像的对象loadimage读取图片文件saveimage保存绘图内容至图片文件getimage从当前绘图设备种获取图像putimage在当前绘图设备上...

C++产生随机数

0.前言想做一个掷骰子的小游戏,需要用到随机数函数,于是查了一些资料,整理了一下。1.随机数函数C++产生随机数需要用到rand()和srand()函数。期中,(1)rand()叫随机数发生器,所在头...

C++在指定位置输出符号

C++在指定位置输出符号

0.前言需要做控制台小游戏,需要获取光标在控制台的位置,从网上查到了gotoxy()函数可以实现,但是在DEVC++环境中直接调用这个gotoxy()会报错,于是查了一些资料,把过程记录下来。1.过程...

C++如何在控制台不同区域显示不同颜色

C++如何在控制台不同区域显示不同颜色

0.前言在前面的文章中,我们介绍过让控制台”五彩斑斓“。但是有一个问题,就是使用system(“color A9”)这种方式,这种方式是一种全局的配置,会把原来的颜色给换掉,很难实现不同区域不同颜色的...

C++小游戏—弹跳小球

C++小游戏—弹跳小球

首先,要注意屏幕直角坐标系的问题,不然的话,后面移动过程中一定会出错。然后,利用printf函数在屏幕坐标(x,y)处显示一个静止的小球字符‘O’,注意屏幕坐标系的原点在左上方,参考代码#includ...

 【C++图形化编程】飞机大战1—基础资源导入与基本框架

【C++图形化编程】飞机大战1—基础资源导入与基本框架

0.前言前面几篇文章中,我们实现了flappy的小游戏,这篇文章中,我们尝试制作飞机大战的游戏。首先,效果图如下:基础资源导入下载图片及音乐资源:https://box356.lanzoui.com/...