easyx烟花粒子代码
时间: 2023-12-14 07:03:37 浏览: 146
以下是一个简单的easyx烟花粒子代码示例:
```c++
#include <graphics.h>
#include <conio.h>
#include <math.h>
#include <time.h>
#define PI 3.14159265358979323846
int main()
{
initgraph(640, 480); // 初始化图形界面
srand((unsigned)time(NULL)); // 随机数种子
int x, y, r, g, b, i, j, k;
double vx, vy, ax, ay, t, dt;
int n = 100; // 粒子数量
int life[n]; // 粒子生命值
int max_life = 100; // 粒子最大生命值
int size[n]; // 粒子大小
int max_size = 10; // 粒子最大大小
int color[n][3]; // 粒子颜色
double angle[n]; // 粒子发射角度
double speed[n]; // 粒子发射速度
for (i = 0; i < n; i++)
{
x = rand() % 640; // 随机位置
y = rand() % 480;
r = rand() % 256; // 随机颜色
g = rand() % 256;
b = rand() % 256;
color[i][0] = r;
color[i][1] = g;
color[i][2] = b;
size[i] = rand() % max_size + 1; // 随机大小
life[i] = rand() % max_life + 1; // 随机生命值
angle[i] = rand() % 360 * PI / 180.0; // 随机发射角度
speed[i] = rand() % 10 + 1; // 随机发射速度
}
dt = 0.01; // 时间间隔
while (!_kbhit()) // 按任意键退出
{
cleardevice(); // 清空屏幕
for (i = 0; i < n; i++)
{
if (life[i] > 0) // 粒子还有生命
{
setfillcolor(RGB(color[i][0], color[i][1], color[i][2])); // 设置颜色
solidcircle(x, y, size[i]); // 画圆
t = life[i] * dt; // 当前时间
vx = speed[i] * cos(angle[i]); // 当前速度
vy = speed[i] * sin(angle[i]);
ax = 0; // 当前加速度
ay = 9.8;
x = x + vx * t + 0.5 * ax * t * t; // 当前位置
y = y + vy * t + 0.5 * ay * t * t;
life[i]--; // 生命值减少
}
else // 粒子已死亡
{
x = rand() % 640; // 重新生成
y = rand() % 480;
size[i] = rand() % max_size + 1;
life[i] = rand() % max_life + 1;
angle[i] = rand() % 360 * PI / 180.0;
speed[i] = rand() % 10 + 1;
}
}
Sleep(10); // 等待一段时间
}
closegraph(); // 关闭图形界面
return 0;
}
```
阅读全文