//烟花
struct fire
{
int x, y;
int cx, cy;
int firexy[240][240];
int r, maxr;
bool isboom;
bool isshow;
unsigned long t1, t2, dt; //爆炸扩散速度
IMAGE fire_img;
}fire1;1.定义一个二维数组
2.用二维数组实现存放图片数据
3.在显示缓存中显示图片
4.显存中存放数据是用一位数组,从左到右从上到下
1.int array[width][height];//width是图片的宽 height是图片的高
2.设置需要转化成数据的图片
SetWorkingImage(&image); image为图片对象
3.循环便利获取图片的像素点,i为图片的宽,j为图片的高
for (int i = 0; i < 240; i++)
{
for (int j = 0; j < 240; j++)
{
fire1.firexy[i][j] = getpixel(i, j);//getpixel是easyx图形库获取像素点方法
}
}4.重新设置窗体为默认绘图设备
etWorkingImage(NULL);
5.计算以图片中心为圆点,半径作为指针画一个圈,圈上点的x和y坐标
这里的a为角度变量,6.28≈2π,也就是一圈360度
这里的fire1对象是通过一开始定义的结构体定义的对象
for (double a = 0; a < 6.28; a += 0.01)
{
int x = fire1.cx + fire1.r * cos(a);
int y = fire1.cy - fire1.r * sin(a);if (x > 0 && x < 240 && y>0 && y < 240)
{
int b = fire1.firexy[x][y] & 0xff; //blue
int g = (fire1.firexy[x][y] >> 8) & 0xff; //green
int r = fire1.firexy[x][y] >> 16; //red//这里求的是圈上点在窗体上的坐标
int xx = (int)(fire1.x + fire1.r * cos(a));
int yy = (int)(fire1.y - fire1.r * sin(a));//这里是颜色选则范围和窗体坐标选则判断
if (r > 0x20 && g > 0x20 && b > 0x20 && xx < 1200 && xx>0 && yy > 0 && yy < 600)