用类和easyx画一个星空背景
时间: 2023-11-27 07:10:59 浏览: 109
C语言+EasyX库生成星空
好的,下面是一个使用类和EasyX画星空背景的示例代码:
```c++
#include <graphics.h>
#include <time.h>
const int WIDTH = 800; // 窗口宽度
const int HEIGHT = 600; // 窗口高度
const int STAR_NUM = 100; // 星星数量
// 星星类
class Star {
public:
Star() {
x = rand() % WIDTH; // 随机生成初始位置
y = rand() % HEIGHT;
size = rand() % 3 + 1; // 随机生成大小
color = RGB(255, 255, 255); // 白色
}
// 绘制星星
void draw() {
setfillcolor(color);
solidcircle(x, y, size);
}
// 移动星星
void move() {
x -= size; // 每帧向左移动
if (x < 0) {
x = WIDTH;
}
}
private:
int x, y; // 位置
int size; // 大小
COLORREF color; // 颜色
};
int main() {
// 初始化窗口
initgraph(WIDTH, HEIGHT);
// 随机生成星星
Star stars[STAR_NUM];
srand(time(NULL));
for (int i = 0; i < STAR_NUM; i++) {
stars[i] = Star();
}
// 绘制星空背景
while (true) {
// 清空画布
cleardevice();
// 绘制星星
for (int i = 0; i < STAR_NUM; i++) {
stars[i].draw();
stars[i].move();
}
// 刷新画面
Sleep(20); // 暂停一段时间,降低帧率,模拟星空中的恒星
flushbatch(); // 批量刷新,提高性能
}
// 关闭窗口
closegraph();
return 0;
}
```
这个程序会随机生成一些星星,并在窗口中绘制它们。每帧,星星会向左移动一定的距离,当移出窗口时会重新出现在窗口右侧。
你可以根据需要调整窗口大小、星星数量和移动速度等参数。运行程序后,你应该能够看到一个闪烁的星空背景。
阅读全文