【EasyX】快速入门——多物体运动和批量绘图

本文介绍了如何使用EasyX库实现多物体运动,包括窗体内小球的反弹、随机初始化小球的位置、速度、方向和颜色。接着探讨了批量绘图的原理和解决画面闪烁的问题,通过批量处理提高绘图效率,并展示了相关代码示例。
摘要由CSDN通过智能技术生成

1.多物体运动

1.1窗体内反弹的小球

我们先绘制出背景

#include<easyx.h>
#include<stdio.h>
int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);

	setbkcolor(RGB(164, 225, 202));
	cleardevice();

	getchar();
	closegraph();
}

现在我们要回顾一下弹球小游戏那节球碰到墙就反弹的代码

#include<easyx.h>
#include<stdio.h>
int main()
{
	initgraph(800, 600);
	setorigin(400, 300);
	setaspectratio(1, -1);

	setbkcolor(RGB(164, 225, 202));
	cleardevice();

	setfillcolor(WHITE);

	int x = 0, y = 0;
	int vx = 4, vy = 4;
	int r = 20;
		while(1)
		{
			cleardevice();
			solidcircle(x, y, r);
			Sleep(30);
			if (y >= 300 - r || y < -300 + r)
			{
				vy = -vy;
			}
			if (x >= 400 - r || x < -400 + r)
			{
				vx = -vx;
			}
			x += vx;
			y += vy;
		}

	getchar();
	closegraph();
}

 

1.2多物体运动 

我们不满足于只有一个小球了,我们有新的需求

我们怎么实现呢?

每个都存有这样的数据,而且有很多小球,所以我们可以将这些数据整合成一个结构体

我们看代码

我们再定义一个符号常量,来表示小球的数量

接下来我们需要为数组内的各个小球元素随机设置初始值

1.3.随机设置圆心坐标 

我们容易得出圆心的坐标取值范围是

那么问题来了

 我们先举一个例子

所以我们很容易得出结论

所以我们很容易就得到x,y的随机坐标

1.4.随机设置速度和方向

我们先看需求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值