Копирует одну графическую или текстовую страницу в другую
Синтаксис
Использование
PCopy [ source ] [, destination ]
Параметры
source
страница откуда копировать
destination
страница куда копировать
Описание
Копирует одну графическую или текстовую видеостраницу в другую. Полезно для
рисования графики на одной невидимой странице и копировании ее на активную
видимую страницу - создание графики без мерцания и гладкой анимации. Чаще
это известно как "двойная буферизация" или
"переключения страниц" .
source и destination ссылаются на номера страниц.
Страница 'source' копируется в страницу 'destination' когда вызывается pcopy.
Если аргумент source опущен, предполагается, что это текущая
рабочая страница. Если аргумент destination опущен,
предполагается, что это текущая видимая страница.
Пример
'Устанавливаем экран 320 x 200 в 8-битный цвет и с 2-мя
страницами видео.
ScreenRes 320, 200, 8, 2
'Устанавливаем рабочую страницу в 1 и отображаемую страницу в
0
ScreenSet 1, 0
'Рисует круг , который движется в верхней части экрана
For x As Integer = 50 To 269
Cls 'Очищаем
экран
Circle (x, 50), 50, 14 'Рисуем
желтый круг с радиусом в 50 пикселей на стр. 1
PCopy 1, 0 'Копируем
наше изображение из страницы 1 в страницу 0
Sleep 25 'Ждем
25 миллисекунд.
Next x
'Подождем нажатия клавиши перед закрытием экрана
Sleep
'' Пример консольного режима:
'' Устанавливаем рабочую страницу в 0 и отображаемую
страницу в 1
#if __FB_LANG__ = "QB"
Screen ,, 0, 1
#else
Screen , 0, 1
#endif
Dim As Integer i, frames, fps
Dim As Double t
t = Timer
Do
'' Заполняем рабочую страницу
определенным цветом и символом
Cls
Locate 1, 1
Color (i And 15), 0
Print String$(80 * 25, Hex$(i, 1));
i += 1
'' Покажем кадры в секунду
Color 15, 0
Locate 1, 1
Print "fps: " & fps,
If Int(t) <> Int(Timer) Then
t = Timer
fps = frames
frames = 0
End If
frames += 1
'' Копируем рабочую страницу в
видимую страницу
PCopy
'' 50мс сна в кадре, чтобы
высвободить время процессора
Sleep 50, 1
'' Выполняем цикл, пока
пользователь не нажмет клавишу
Loop Until Len(Inkey$)
Различия платформ
- Максимальное количество текстовых страниц в Windows - 4.
- Максимальное количество текстовых страниц в DOS - 8.
- Максимальное количество текстовых страниц для всех других платформ - 1.
- Максимальное количество графических страниц зависит от того, сколько было
указано, когда вызывалась функция Screen
или ScreenRes.
Отличия от QB
См. также