将一个图形或文本页复制到另一个
语法
用法
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差别
参考