Qml - урок 005

Спрайт в QML застосовуються ще простіше, ніж в Qt / C ++, оскільки в QML є класи, які спеціально створені для роботи з спрайтами: Sprite і AnimatedSprite.

Структура проекту для роботи зі Sprite і AnimatedSprite

Qml - урок 005
  • Проект створюється як стандартний проект QtQuick with controls, після чого я викидаю всю зайве, нібито менюбара і кнопок. Залишаю тільки те, що ми будемо використовувати для демонстрації.

    • main.cpp - основний файл проекту, в якому запускається qml файл;
    • main.qml - вікно програми;
    • MainForm.ui.qml - форма для роботи з дизайнером;
    • sprite_sheet.png - зображення нашого спрайту.

    sprite_sheet.png

  • Оскільки сам по собі урок досить простий, то зупинюся на програмному коді тільки цього файлу.

    В даному уроці пропоную два варіанти застосування спрайтів. Один варіант - це застосування з допомогою SpriteSequence, в який можна поміщати різні спрайт, з різними джерелами. А другий варіант - це з використанням AnimatedSprite, в якому береться одне джерело. Обидва варіанти застосування спрайтів в даному уроці дадуть однаковий результат.

    У SpriteSequence задається розмір спрайту і його положення в головному вікні програми, тоді як розмір кадру спрайту і кількість його кадрів задається вже в об'єкті Sprite, який поміщається в SpriteSequence. При цьому в SpriteSequence можна помістити кілька таких об'єктів Sprite.

    У випадку з AnimatedSprite всі параметри розмірів і розташування, а також розмірів кадру і його кількості задаються в самому AnimatedSprite. Різниця в тому, що в якості джерела спрайтів може бути взятий тільки один файл.

    Також необхідно вказати параметр frameSync як true. Тоді спрайт працюватимуть синхронно, якщо цього не зробити, то вони будуть працювати повільно і по черзі.

    Qml - урок 005
  • Схожі статті