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.随机设置速度和方向
我们先看需求