| Выкарыстоўваючы бітавыя вобразы, можна ствараць спрайтавую анімацыю. 
Пад спрайтам разумеюць некаторы графічны аб'ект, які можа перамяшчацца па экране без скажэння задняга плана. Спрайты з'яўляюцца адным з самых папулярных спосабаў стварэння вялікіх і складаных сцэн, так як дазваляюць маніпуліраваць і кіраваць кожным малюнкам паасобку. Спрайты выкарыстоўваліся пры стварэнні анімацыі ў прыкладах 17.13 (месяц) і 17.14 (матылёк). У гэтых прыкладах спрайт утрымліваў фіксаваны малюнак. Сучасным падыходам да ўжывання спрайтаў у анімацыі з'яўляецца выкарыстанне раскадровак (spritesheet — атлас спрайтаў) — графічных файлаў, якія змяшчаюць некалькі фаз руху якога-небудзь аб'екта (прыклад 17.15). Хуткая змена асобных кадраў дазваляе стварыць ілюзію руху. Такую анімацыю называюць спрайтавай. Зручна выкарыстоўваць раскадроўкі, у якіх усе кадры маюць аднолькавую шырыню (вышыню). Алгарытм стварэння анімацыі з выкарыстаннем атласа спрайтаў будзе аналагічны алгарытму, разгледжанаму ў прыкладзе 17.5: 
Захаваць частку фону.Намаляваць першы кадр спрайта.Запусціць таймер.Пакуль таймер працуе:4.1. аднавіць фон;
 4.2. разлічыць новае становішча аб'екта;
 4.3. захаваць частку фону;
 4.4. перайсці да наступнага кадра;
 4.5. намаляваць кадр.
 Прыклад 17.16. Стварыць праект, у якім матылёк будзе лётаць вакол кветкі. Для палёту матылька выкарыстоўваць спрайт з раскадроўкай. Этапы выканання задання 
Анімацыя запускаецца адразу пры загрузцы формы (без кнопкі запуск).Калі не ўлічваць неабходнасць змены кадраў з атласа спрайтаў, то заданне аналагічна прыкладу 17.13. Разгледзім змену кадраў.Пры кожным спрацоўванні таймера будзем вылучаць новы кадр з раскадроўкі. Калі гарызантальная каардыната бягучага кадра стала большая, чым шырыня атласа спрайтаў, то вылучэнне пачынаецца спачатку.Атлас спрайтаў для матылька складаецца з 18 кадраў, таму пры кожным спрацоўванні таймера значэнне пераменнай t будзем змяняць на    . | 
Слова «спрайт» было прыдумана ў 1970-я гады супрацоўнікам кампаніі Texas Instruments: іх новая мікрасхема TMS9918 магла апаратна адлюстроўваць невялікія карцінкі, якія рухаюцца паверх нерухомага фону. 
Прыклад 17.15. Прыклады раскадровак[1]: 
 
[1] Малюнкі бясплатных раскадровак, якія былі узяты з сайта https://ru.freepik.com/
 
 Прыклад 17.16. Раскадроўка матылька (першыя чатыры кадры): 
 Апісанне пераменных: 
| Graphics::TBitmap   *kadr = new Graphics::TBitmap(),   *spritesheet = new Graphics::TBitmap(),   *fon = new Graphics::TBitmap(),   *fon_kadr = new Graphics::TBitmap(); int w, h, x_fly, y_fly, x_k, y_k; int x_c = 150, y_c =120, R = 120; //колькасць кадраў int k = 18; bool f = false; TRect pr_kadr, pr_fon, pr_fly; double t = 0, pi; |  Апрацоўшчык падзеі FormCreate для формы. 
| void __fastcall TForm1:: FormCreate(TObject *Sender) {   //загрузка малюнкаў
   fon -> LoadFromFile("podsolnuh.bmp");   Image1 -> Picture -> Assign(fon);   spritesheet -> LoadFromFile("fly.bmp");   w = spritesheet -> Width / 18;   h = spritesheet -> Height;   //вызначэнне бітавага вобраза   //для захоўвання кадра матылька   kadr -> Width = w;   kadr -> Height = h;   kadr -> Transparent = true;   pr_kadr = Bounds(0, 0, w, h);   pr_fly  = pr_kadr;   //пачатковы кадр   x_k = 0;   y_k = 0;   kadr -> Canvas -> CopyRect(pr_kadr,       spritesheet -> Canvas, pr_fly);   //вызначэнне бітавага вобраза   //для захоўвання часткі фону   fon_kadr -> Width = w;   fon_kadr -> Height = h;   //пачатковае становішча матылька   x_fly = x_c;   y_fly = y_c - R;   //захаванне часткі фону пад матыльком   pr_fon = Bounds(x_fly, y_fly, w, h);   fon_kadr -> Canvas -> CopyRect     (pr_kadr, fon -> Canvas, pr_fon);   //маляванне матылька
   Image1 -> Canvas -> Draw      (x_fly, y_fly, kadr);   pi = acos(-1.);} |  Апрацоўшчык падзеі OnTimer для таймера: 
| void __fastcall TForm1::Timer1Timer(TObject *Sender)
 {   //аднаўленне фону
   Image1 -> Canvas -> Draw       (x_fly, y_fly, fon_kadr);   //новы кадр матылька   x_k += w;   if (x_k > w * k)     x_k = 0;   pr_fly = Bounds(x_k, y_k, w, h);   kadr -> Canvas -> CopyRect (pr_kadr,      spritesheet -> Canvas, pr_fly);   //новае становішча матылька   t += 0.349;   if (t > 2 * pi)     t = 0;   x_fly = x_c + ceil(R * sin(t));   y_fly = y_c - ceil(R * cos(t));   //захаванне часткі фону
   pr_fon = Bounds(x_fly, y_fly, w, h);   fon_kadr -> Canvas -> CopyRect     (pr_kadr, fon -> Canvas, pr_fon);   //маляванне матылька
   Image1 -> Canvas -> Draw        (x_fly, y_fly, kadr); } |  |