#include<easyx.h>
IMAGE SNOW 图形变量
struct MOVE生存结构体
{int x=0;int y=0;
bool live=false;};
initgraph(800, 800);初始化图形界面
MOVE snowflake[5000];目标数量
loadimage(&SNOW, "snow.png");加载图片
BeginBatchDraw(); 开始批量绘图。写在循环外
EndBatchDraw(); 结束批量绘制,并执行未完成的绘制任务。循坏外,程序结束前
FlushBatchDraw(); 执行未完成的绘制任务。写在循环内,构图后,延迟前
void DRAW_SNOW(){画出目标
for(int i=0;i<=5000;i++){
if(SNOW.live){
putimage(x,y, &SNOW2, NOTSRCERASE);暗底
putimage(x,y, &SNOW1, SRCINVERT);亮层 } } }
void CREATE_SNOW(){生成目标
for (int i = 0; i <= 5000; i++)
{if (!snowflake[i].live)
{snowflake[i].x = rand() % (731);
snowflake[i].y = 0;
snowflake[i].live = true;break;}}}
void snowmove(){目标移动
for (int i = 0; i <= 50; i++){
if (snowflake[i].live){
snowflake[i].y += 1;
snowflake[i].x += 0;}
if (snowflake[i].y > 800)
{snowflake[i].live = false;}}}
bool timer(int ms, int id)//时间戳
{
static DWORD t[500];
// 将 clock() 的返回值转换为 DWORD 类型
if (static_cast<DWORD>(clock()) - t[id] > static_cast<DWORD>(ms))
{
t[id] = static_cast<DWORD>(clock());
return true;
}
return false;
}