LoadAnimImage (filename,width,height,first,count)

Параметры

filename = путь к файлу с графикой.
width = ширина в пикселях каждого кадра анимации.
height = высота в пикселях каждого кадра анимации.
first = номер, с которого начать нумерацию кадров (обычно 0)
count = сколько кадров анимации вы хотите загрузить

Описание

Аналогично действию LoadImage, LoadAnimImage загружает изображение, при этом разбивая его на кадры (применяется для загрузки анимации из одного файла в одну переменную).

Так же как и LoadImage, эта команда возвращает указатель - уникальный номер загруженной графики. Используйте переменную (обычно GLOBAL) для сохранения этого номера, так как он Вам понадобится для рисования картинки с помощью команды DrawImage. Смотрите описание команды LoadImage для подробностей.

Анимированная картинка содержит 2 или более кадров, расположенных внутри одной картинки по порядку следования. Там нет промежутков между кадрами, и каждый кадр должен иметь общую со всеми кадрами высоту и ширину. Будучи загруженными, кадры будут пронумерованны в порядке слева направо и сверху вниз, начиная с верхнего левого угла. Например, посмотрите файл kaboom.bmp или sparks.bmp в папке C:Program Files\Blitz\Basic\samples\graphics на Вашем компьютере. Существует множество утилит для создания подобных файлов.

При рисовании с помощью команды DrawImage, Вы должны указать номер кадра с помощью параметра frame.

Чтобы действительно анимировать картинку, Вы должны организовать смену кадров (как листание книги, мультик, или другое видео) достаточно быструю, чтобы создать иллюзию движения. Наш пример покажет как этого достичь. 

Пожалуйста, посмотрите следующий пример. Замечание: Вам может понадобиться сменить ссылки на файлы в соответствии с тем, где они у Вас расположены.

Смотрите также: LoadImage.

Пример

; Пример LoadAnimImage/MaskImage
; С таймером анимации

Global gfxSparks, frmSparks, tmrSparks

; Инициализация графики
Graphics 640,480,16
SetBuffer BackBuffer()

; Загружаем анимированную картинку
gfxSparks=LoadAnimImage("c:\Program Files\BlitzBasic\samples\Graphics\spark.bmp",32,32,0,3)

; Делаем фоновый цвет прозрачным
; в нашем случае это розовый.
MaskImage gfxSparks,255,0,255

; Повторяем до нажатия ESC
While Not KeyHit(1)
Cls ; Очищаем экран

; Меняйте 100 в большую или меньшую сторону
; делая анимацию быстрее или медленнее.
If MilliSecs() > tmrSparks + 100 Then
tmrSparks=MilliSecs() ; сбрасываем таймер
frmSparks=( frmSparks + 1 ) Mod 3 ; увеличиваем счётчик кадров
End If
DrawImage gfxSparks,MouseX(),MouseY(),frmSparks ; рисуем картинку
Flip ; смена буферов
Wend

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в Интернете