pts[i].state = PT_MOVING; // move it
}
if(pts[i].state==PT_MOVING)// move active particles
{
// there is air that holds rain drops back
if(pts[i].yv>3.0)pts[i].ya *= 0.75;
// control the power of wind,so u're a Druid,player!
if(KEY_DOWN(VK_LEFT))wind_force_x -= 0.0001;
if(KEY_DOWN(VK_RIGHT))wind_force_x += 0.0001;
if(wind_force_x>3.0||wind_force_x<-3.0)
wind_force_x = wind_force_x>3.0?3.0:-3.0;
if(KEY_DOWN(VK_UP))wind_force_y -= 0.0001;
if(KEY_DOWN(VK_DOWN))wind_force_y += 0.0001;
if(wind_force_y>1.0||wind_force_y<-1.0)
wind_force_y = wind_force_y>1.0?1.0:-1.0;
// Single pixel looks don't like rain drop
// so I add an extra pixel to make it more real
// note wind_force effects rain drops' direction
if(wind_force_x<-0.5) // wind blows from east to west
Draw_Pixel((int)pts[i].x-1,(int)pts[i].y+1,pts[i].color,back_buffer,back_lpitch);
else
if(wind_force_x>0.5) // wind blows from west to east
Draw_Pixel((int)pts[i].x+1,(int)pts[i].y+1,pts[i].color,back_buffer,back_lpitch);
else // wind is too weak to be considered
Draw_Pixel((int)pts[i].x,(int)pts[i].y+1,pts[i].color,back_buffer,back_lpitch);
}
}
}