Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Интернет -

C# - Графика

Все примеры / Мультимедиа / Графика

Анимированный мячик

Автор: Интернет | добавлено: 12.01.2011, 19:45 | просмотров: 4740 (1+) | комментариев: 0 | рейтинг: *x5
Еще один пример использования прорисовки анимированных объектов на форме из отдельного потока (Thread). На этот раз на форме рисуется маленький красный шарик, который летает сверху и вниз и отталкивается от краев формы.

Код

using System;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;

public class AnimateBall : Form
{
  private int x, y;
  private Button suspend = new Button();
  private Button resume = new Button();
  private Button abort = new Button();
  Thread t;

  public AnimateBall()
  {
    BackColor = Color.White;
    abort.Text = "Сброс";
    suspend.Text = "Пауза";
    resume.Text = "Продолжить";

    int w = 20;
    suspend.Location = new Point(w, 200);
    resume.Location = new Point(w += 10 + suspend.Width, 200);
    abort.Location = new Point(w += 10 + resume.Width, 200);

    abort.Click += new EventHandler(Abort_Click);
    suspend.Click += new EventHandler(Suspend_Click);
    resume.Click += new EventHandler(Resume_Click);

    Controls.Add(suspend);
    Controls.Add(resume);
    Controls.Add(abort);

    t = new Thread(new ThreadStart(Run));
    t.Start();
  }
  protected void Abort_Click(object sender, EventArgs e)
  {
    t.Abort();
  }
  protected void Suspend_Click(object sender, EventArgs e)
  {
    t.Suspend();
  }
  protected void Resume_Click(object sender, EventArgs e)
  {
    t.Resume();
  }
  protected override void OnPaint(PaintEventArgs e)
  {
    Graphics g = e.Graphics;
    g.FillEllipse(Brushes.Red, 100, y, 4, 4);
    base.OnPaint(e);
  }
  public void Run()
  {
    int dx = 2, dy = 2;
    y = 1;

    while (true)
    {
      for (int i = 0; i < 140; i++)
      {
        y += dy;
        Invalidate();
        Thread.Sleep(10);
      }
      dx = -dx; dy = -dy;
    }
  }
  public static void Main()
  {
    Application.Run(new AnimateBall());
  }
}
Об авторе

Интернет

Анонимный пользователь сети Интернет. Автор великого множества кодов и программных решений. Никого никогда не видел в лицо этого пользователя, ходят слухи, что он многоликий, и может одновременно находиться в разных частях света.
Интернет
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Люди на Kbyte.Ru
Реклама
Счетчики