Ahoj, jsem jenom začátečník, ale pokouším se učit podle knížky Moderní programování. Ve sbírce úloh k učebnici pro pokročilé se má připravit jednoduchý program sněžení. Napadlo mě udělat si z toho jednoduchý screensaver. Všechno funguje, ale nedovedu si poradit s náhodnou velikostí vloček. Zkoušel jsem přepsat základní tvorbu vloček, ale bud se mi vytvoří jenom jedna a nehýbe se, a nebo když padají, tak se přitom mění jejich velikost. Snad jsem to vysvětlil srozumitelně, asi je to jednoduché, ale opravdu už nevím co s tím. Dík za pomoc. Kus zdrojáku je zde:
Random náhoda = new Random();
List<Point> seznamVloček = new List<Point>();
public oknoProgramu()
{
InitializeComponent();
}
private void oknoProgramu_Paint(object sender, PaintEventArgs e)
{
Graphics kp = e.Graphics;
foreach (Point vločka in seznamVloček)
kp.FillEllipse(Brushes.White, vločka.X, vločka.Y, 3, 3);
}
private void časovač_Tick(object sender, EventArgs e)
{
// jedna nová vločka
int maxX = ClientSize.Width - 1;
int x = náhoda.Next(0, maxX + 1);
Point nováVločka = new Point(x, 0);
seznamVloček.Add(nováVločka);
// posun všechny vločky
for (int index = 0; index < seznamVloček.Count; index++)
{
int posunX = náhoda.Next(-2, +2 + 1);
int posunY = 3;
int novéX = seznamVloček[index].X + posunX;
int novéY = seznamVloček[index].Y + posunY;
seznamVloček[index] = new Point(novéX, novéY);
}
Refresh();
}