| Описание |
class MGFSPRITE;
Позволяет на основе текстуры создать статическую или анимированную последовательность кадров. Используется для более удобного рендеринга графики.
Конструктор
MGFSPRITE(MGFTEXTURE *tex, float width, float height, float fps, int start, int end, bool center = true);
tex - указатель на текстуру.
width - ширина кадра.
height - высота кадра.
fps - скорость смены кадров.
start - номер первого кадра.
end - номер последнего кадра.
center - центрирование спрайта.
Для создания статического спрайта fps = 0.f, start = end. |
| содержание / вверх |
| Методы |
void SetColor(int color);
Устанавливает цвет спрайта.
void Update(float delta);
Обрабатывает анимацию спрайта. Если спрайт статический - можно не вызывать.
void Render(float x, float y, float angle = 0.f, float scale = 1.f);
Рендерит спрайт в координаты (x; y) споворотом angle градусов и масштабом scale.
void SetFrame(int num);
Установить текущий кадр анимации. Функция сбрасывает время.
void SetMode(int mode);
Устанавливает метод анимации.
mode принимает значения:
MGFANIM_FWD - анимация от начала до конца.
MGFANIM_REV - анимация от конца до начала.
MGFANIM_LOOP - зацикленная анимация.
MGFANIM_PINPONG - анимация от начала до конца до начала.
Так же можно комбинировать значения через "|".
void SetVertex(float width, float height, bool center = true);
Установить ширину и высоту спрайта без изменения координат текстуры.
void Play(bool play);
Если play равно true - перезапскает анимацию, false - останавливает. |
| содержание / вверх |
| Пример |
MGF *mgf = mhgCreate();
MGFTEXTURE *tex = mgf->Texture_Add("anim_background.jpg");
MGFSPRITE *spr = new MGFSPRITE(tex, 64.f, 64.f, 0.5f, 0, 7, true);
float angle = 0.f;
...
// update
float delta = mgf->Timer_GetDelta();
spr->Update(delta);
angle += delta * 80.f;
if(angle > 360.f) angle = 0.f;
...
// render
spr->Render(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, angle); |
| содержание / вверх |
|