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

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

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

前面的文章实现了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++图形化编程】飞机大战2——运动与碰撞检测

上一篇中,简单实现了飞机大战的基本框架,这篇文章继续完善,使其可以进行游戏。#include <graphics.h> #include <conio.h>...

C++实现弹窗效果

C++实现弹窗效果

1.格式C++实现弹窗效果需要用到messagebox,这个我在C#中用过,C++也有类似用法。messagebox函数,需要引入<windows.h>头文件2.简单用法#include&...

C++实现走迷宫小游戏

1.简单版本简单版本是利用字符数组实现的,利用字符数组设定入口和出口,用户每次按键就刷新一下当前字符数组。参考代码:#include<stdio.h>#include<stdlib....

【二分与分治】中间值、边界值、循环条件、模块写法(1)

【二分与分治】中间值、边界值、循环条件、模块写法(1)

0.前言二分法并不简单,或者说“思路简单,细节爆炸”,举例来说,你可能已经看过很多题解,那么可能会看到下面几种写法mid=(left+right)/2 mid=(left+right)>&...

C++小游戏——简单飞机大战(2)——代码与显示优化

C++小游戏——简单飞机大战(2)——代码与显示优化

0.前言在上一篇中,我们在C++控制台中简单实现了飞机大战了逻辑,但是代码比较长,显示也不是很好看,这篇文章中,我们对上一篇的代码进行优化下,把很多过程封装成函数形式。让程序看上去更加精简。一个合理化...

C++使用键盘控制物体移动

C++使用键盘控制物体移动

0.前言在前面几篇文章中,学习了键盘事件和光标移动,在这篇文章中,我们要使用键盘的上下左右键控制在控制台中出现的角色1.原理因为我们要通过移动键盘控制光标位置,那么在此之前需要提前获取到光标位置,然后...