PCopy
 
将一个图形或文本页复制到另一个

语法

Declare Sub PCopy ( ByVal source As Integer = -1, ByVal destination As Integer = -1 )

用法

PCopy [ source ] [, destination ]

参数

source
要复制的页面
destination
复制到的页面

说明

将一个图形或文本视频页面复制到另一个。用于在一个不可见页面上绘制所有图形,并将其复制到活动可见页面 - 创建平滑的图形和动画。被称为“双缓冲”或“翻页”。

source destination 参考页码。当pcopy被调用时,'源'页被复制到'目的地'页面上。

如果省略source 参数,则假定当前工作页面。如果省略destination 页面,则假定当前可见页面。

PCopy如果destination 页面被锁定,则处于非活动状态。

例子


'将屏幕设置为320x200的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 '第1页绘制一个50像素半径的黄色圆圈
    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

    ''每帧消耗50ms以释放CPU时间
    Sleep 50, 1

    ''运行循环,直到用户按下一个键
Loop Until Len(Inkey$)


平台差异

  • Windows中最多的文本页数为4。
  • DOS中最大的文本页数为8。
  • 所有其他目标中最多的文本页数为1。
  • 图形页面的最大数量取决于调用屏幕ScreenRes语句时指定的内容。

与QB差别

  • 没有

参考