Easyx实现窗口自动碰撞的小球

Easyx实现窗口自动碰撞的小球,第1张

Easyx实现窗口自动碰撞的小球

 

#include
#include
#include

int main()
{
	//创建窗口
	initgraph(640, 480);

	//定义小球的数据
	int bx = getwidth() / 2;
	int by = getheight() / 2;
	int br = 20;
	int xSpeed = 5;//速度
	int ySpeed = 5;
	
	//处理消息
	while (true)
	{
		int startTime = clock();//获取当前的毫秒数(程序启动到调用clock的时间)
		//双缓冲
		BeginBatchDraw();//开始双缓冲
		//清屏
		cleardevice();
		//绘制小球
		setfillcolor(GREEN);
		solidcircle(bx, by, br);

		//移动小球
		bx += xSpeed;
		by += ySpeed;

		//如果碰撞到边界就反d
		if (bx+br>getwidth()||bx - br < 0)
		{
			xSpeed = -xSpeed;
		}
		if (by + br > getheight() || by - br < 0)
		{
			ySpeed = -ySpeed;
		}
		
		static ExMessage msg;//每次循环的时候,不要重新定义
		while (peekmessage(&msg,EM_MOUSE | EM_KEY))
		{

		}
		EndBatchDraw();//把内存中的图片显示到窗口上

		//fps帧数  一般游戏是24帧数或60帧数  怎么控制帧率  1000毫秒/60帧=16.666
		int frameTime = clock() - startTime;//获取当前帧执行了多少毫秒
		//如果当前帧执行时间小于美珍应该执行的时间(提前执行完毕)
		if (frameTime < 1000 / 60)
		{
			Sleep(1000 / 60 - frameTime);//多余的时间睡觉
			//Sleep(16);
		}
		
	}

	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5702483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存