Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Примеры/Серия изображений

Материал из Онлайн справочника
Перейти к: навигация, поиск


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Описание[1]

Показывает на экране серию изображений, что создает иллюзию движения.

В этом скетче-примере загружается 12 изображений, которые затем рисуются друг за другом.

Пример

  1. int numFrames = 12;  // количество кадров в анимации
  2. int currentFrame = 0;
  3. PImage[] images = new PImage[numFrames];
  4.    
  5. void setup() {
  6.   size(640, 360);
  7.   frameRate(24);
  8.  
  9.   images[0]  = loadImage("PT_anim0000.gif");
  10.   images[1]  = loadImage("PT_anim0001.gif");
  11.   images[2]  = loadImage("PT_anim0002.gif");
  12.   images[3]  = loadImage("PT_anim0003.gif");
  13.   images[4]  = loadImage("PT_anim0004.gif");
  14.   images[5]  = loadImage("PT_anim0005.gif");
  15.   images[6]  = loadImage("PT_anim0006.gif");
  16.   images[7]  = loadImage("PT_anim0007.gif");
  17.   images[8]  = loadImage("PT_anim0008.gif");
  18.   images[9]  = loadImage("PT_anim0009.gif");
  19.   images[10] = loadImage("PT_anim0010.gif");
  20.   images[11] = loadImage("PT_anim0011.gif");
  21.  
  22.   // если вы хотите загрузить каждое изображение отдельно
  23.   // и знаете, сколько у вас кадров, названия файлов для картинок
  24.   // можно создавать прямо во время работы программы;
  25.   // преобразование чисел осуществляется с помощью функции nf(),
  26.   // и она нужна для того, чтобы число состояло из 4 цифр:
  27.   //for (int i = 0; i < numFrames; i++) {
  28.   //  String imageName = "PT_anim" + nf(i, 4) + ".gif";
  29.   //  images[i] = loadImage(imageName);
  30.   //}
  31. }
  32.  
  33. void draw() {
  34.   background(0);
  35.   currentFrame = (currentFrame+1) % numFrames; // используем %,
  36.                                                // чтобы менять кадр
  37.                                                // с каждым проходом
  38.                                                // через цикл draw()
  39.   int offset = 0;
  40.   for (int x = -100; x < width; x += images[0].width) {
  41.     image(images[(currentFrame+offset) % numFrames], x, -20);
  42.     offset+=2;
  43.     image(images[(currentFrame+offset) % numFrames], x, height/2);
  44.     offset+=2;
  45.   }
  46. }

См.также

Внешние ссылки

  1. processing.org - Sequential by James Paterson