阅读:1631回复:9
请教怎么平滑移动屏幕!
以前在Dos下可以改变显示数据的起始位置寄存器来实现屏幕的平滑移动。
例如: mov ax,12c mov dx,3d4 out dx,ax 但在win2000下一直不行,请教高手怎么实现这功能啊? |
|
沙发#
发布于:2002-10-29 13:24
你说的太不清楚,怎么回答???
你滑动什么?窗口里的还是全屏的??? :mad: :mad: :mad: 要想高性能,去玩弄一下DirectX吧。 你那20分放了吧,犒劳一下大家 |
|
|
板凳#
发布于:2002-10-29 14:19
不好意思!我说的是全屏幕向左或者右移动,要求看不到闪烁!
如果直接移动显存里数据的话,速度太慢! 我想直接对显卡进行操作,控制显卡的起始地址寄存器,我在驱动中控制USB的B000等端口都可以,就是显卡的端口不起作用,但在Dos下是可以的! 如果我知道怎么做当然会放分了! |
|
地板#
发布于:2002-10-29 14:46
现在都用2000了,怎么还编写dos的程序?用DirectX吧。
我想就算你能移动窗口,恐怕你也只是能移动那个dos窗口吧? |
|
地下室#
发布于:2002-10-29 15:13
不好意思!我说的是全屏幕向左或者右移动,要求看不到闪烁! 这种情况不用驱动,DirectX可以搞定 |
|
|
5楼#
发布于:2002-10-29 15:14
2000下,在DOS窗口里,可以写端口,但写了也没用
所以你最好用DirectX,要不就用纯DOS |
|
|
6楼#
发布于:2002-10-29 16:59
你这个问题好像不是什么驱动方面的问题嘛?看你要求图像移动的速度啦,如果要求不是太高的话,用bitblt(),再加上去背景应该可以达到要求了。如果是要求很高的话,在windows下最好用DirectX。因为DirectX就是直接操作硬件,他的出现就是为了提供高效的图像显示,并不只是专门针对游戏开发的。
|
|
|
7楼#
发布于:2002-10-29 18:15
自己搞定了!是输入数据的问题!
把WRITE_PORT_USHORT(port,0x120c) 写成了WRITE_PORT_USHORT(port,0x12c) 所以没有反应,呵呵! 谢谢各位了! |
|
8楼#
发布于:2002-10-29 18:53
自己搞定了!是输入数据的问题! 说句谢谢就完了??? :mad: :mad: :mad: 放分庆祝! :mad: :mad: :mad: |
|
|
9楼#
发布于:2002-10-30 10:01
早知道多灌几贴了!
|
|