Компьютерная графика, мультимедиа и игры на Visual C#


Глава Методика разработки мульти­пликации - часть 2


Чтобы подключить к работе таймер, дважды щелкаем значок timer1 (ниже формы в режиме проектирования). Появляется файл Form1.cs с шаблоном, который после записи нашего кода принимает следующий вид.

Листинг 65.2. Метод для мультипликации изображений.

private void timer1_Tick(object sender, EventArgs e)

{

      //Создаем объект myGraphics класса Graphics:

      Graphics myGraphics = CreateGraphics();

      //Вызываем метод DrawImage, используя перегрузку №8:

      myGraphics.DrawImage(myArrayImages[j], -10, -10,

      myArrayImages[j].Width, myArrayImages[j].Height);

      //Высвобождаем ресурсы, выделенные объекту myGraphics:

      myGraphics.Dispose();

      //Организовываем цикл для шести рисунков:

      j = j + k;

      if (j == 5)

      {

            //От последнего рисунка переходим к первому:

            k = -5;

      }

      else if (j == 0)

      {

            //Задаем первый рисунок для начала цикла:

            k = 1;

      }

}

В этом коде главным является вызов перегруженного метода DrawImage, который в VC# имеет много видов перегрузки. Здесь использована перегрузка с сигнатурой Graphics.DrawImage Method(Image, Int32, Int32, Int32, Int32).

Напомним, что система координат связана с  Form1, а начало координат (0, 0) расположено в верхнем левом углу этой Form1. Координаты (-10, -10)  в коде являются координатами верхнего левого угла j – го рисунка (j = 0, 1, 2, 3, 4, 5). Изменяя эти координаты, мы можем удобнее расположить рисунок на Form1. Последние два параметра в методе DrawImage определяют ширину и высоту рисунка на форме Form1.

Учитывая важность данного кода для использования на практике, приведем его второй вариант. А именно, вместо вывода рисунков при помощи метода DrawImage (точнее, вместо приведенной на листинге строки кода с этим методом), мультипликацию можно выводить в рамку рисунка pictureBox1 (предварительно расположив этот элемент PictureBox на форме) при помощи кода:

   //Центрируем каждый рисунок внутри рамки pictureBox1:




Начало  Назад  Вперед



Книжный магазин