ImageBuffer (handle[,frame])

Параметры

handle = указатель рисунка
frame = номер кадра, если рисунок анимированный (не обязательно)

Описание

Есть 1000 причин для использования этой команды. Проще говоря, Вы можете захотеть рисовать на существующем изображении, которое Вы загрузили (командами LoadImage или LoadAnimImage) или создали (командой CreateImage). Например, Вы имеете изображение стены, и хотите добавить, к примеру, надписи на стенах, которые появляются в зависимости от действий пользователя. Вместо того, чтобы накладывать дюжину изображений надписей на всем протяжении стены, используйте только команду SetBuffer, чтобы обозначить изображение стены как 'целевой' буфер, и пишите или рисуйте на нём (или накладывайте другие рисунки)! В следующий раз, когда Вы отображаете это изображение на экране (командой DrawImage), Вы уже увидите изменения! Это - очень мощная команда!

Пример

;Пример CreateImage/TileImage/ImageBuffer 

; Создаём необходимые переменные
; Одна переменная для создаваемого изображения, одна для таймера
Global gfxStarfield, tmrScreen

; Устанавливаем графический режим
Graphics 640,480,16

; Создаём пустое изображение с 32 пикселями в ширину и 32 в высоту с 10 кадрами размерами 32x32
gfxStarfield=CreateImage(32,32,10)

; цикл по всем созданным кадрам изображения
For t = 0 To 9
; Устанавливаем целевой буфер для отрисовки ( в данном случае - картинку)
SetBuffer ImageBuffer(gfxStarfield,t)
; рисуем 50 "звёзд" в случайных местах картинки
For y = 1 To 50
Plot Rnd(32),Rnd(32)
Next
Next

; Двойная буферизация для быстроты и плавности отрисовки
SetBuffer BackBuffer()

; Цикл до нажатия ESC
While Not KeyHit(1)

; Обновляем экран каждые 300 миллисекунд. Поменяйте 300 на меньшее число для большей быстроты отрисовки
; замедление обновления экрана
If MilliSecs() > tmrScreen+300 Then
Cls ;очищаем экран

; Покрываем экран копиями случайных кадров изображения начиная с точки
; x=0 и y=0.
TileImage gfxStarfield,0,0,Rnd(9)
Flip ; смена буферов
tmrScreen=MilliSecs() ; обновляем время
End If
Wend

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

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