回 帖 发 新 帖 刷新版面

主题:屏幕页显示技术的再研究

下面的程序在纯DOS中用QB运行发现一个有趣的问题:如果在QB中加载UCDOS汉字显示系统,运行程序时,移动小球时画面中的文字闪烁,不能与动画同步显示。在QB中不加载UCDOS汉字显示系统,移动小球时虽然画面中的文字显示是乱码,但这一条乱码能够与动画同步显示,不闪烁。这是什么原因,请各位高手指点!!!


'这是用屏幕页技术显示的画面,左右箭头可移动小球
SCREEN 9, , 1, 0                  '设定1页为非当前页,0页为当前页
LET y = 300
DO
  CLS 1                '1页清屏    
  CIRCLE (y, 150), 50, 14       '画小球  
  LINE (50, 190)-(550, 190), 12
  LINE (50, 110)-(550, 110), 12
  LOCATE 6, 30
  COLOR 7
  PRINT "这是用屏幕面技术显示的画面"
  PCOPY 1, 0             '将1页的内容复制到0页,实现动画  
  DO
    LET k$ = INKEY$
  LOOP UNTIL k$ = CHR$(27) OR k$ = CHR$(0) + CHR$(77) OR k$ = CHR$(0) + CHR$(75)
  SELECT CASE k$
    CASE CHR$(27)
      EXIT DO
    CASE CHR$(0) + CHR$(77)      '右移小球
      LET y = y + 10
      IF y > 500 THEN LET y = 110
    CASE CHR$(0) + CHR$(75)      '左移小球
      LET y = y - 10
      IF y < 110 THEN LET y = 500
  END SELECT
LOOP
END

回复列表 (共4个回复)

沙发

UCDOS工作在图形模式下,默认的显示模式能显示640*480*256色的图像
在QB中
SCREEN 13这样的模式是320*240*256色的模式
SCREEN 12是640*480*12色的模式
这样的话L在文本模式下是80列25行 ,LOCATE语句在这个范围内就不会出问题,
如果你在图形模式下,他们的列和行是不一样的,所以会出现种种你认为的问题,这个你只要看看QBASIC的书就很清楚了,书上说的已经非常的详细了!

板凳

应该是颜色问题,
不是定位问题,
locate 语句只要不超过25,80
是可以扩展的.

3 楼

谢谢各位的指点,再请问一个问题,在加载了UCDOS的图形方式下能否用屏幕页技术同步显示文字与动画呢?谢谢指点!

4 楼

你的意思是调用TX?
UCDOS的TX也是比较强大的屏幕模式,
只是我的图形观念不太好,老会死机的.

我来回复

您尚未登录,请登录后再回复。点此登录或注册