哪位大是可以在DOS的16位真彩模式下实现整屏画点是弹出的效果??

lyzcom 2000-07-12 04:52:00
我看有些高手写的程序,不管是在16色、256色还是16位真彩色,他满屏写点,都是弹出来的。请问那位大虾能够做到。我的程序在640X480X16M模式下写满屏的点,会有一点感觉到是从上到下,一行一行写出来的。谁能给个源代码?若分数不够,俺可再加!!!!!
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pxguofan 2001-02-16
  • 打赏
  • 举报
回复
在DOS下可以参考WINDOS下DirectX的双缓冲技术。显存不够利用内存虚拟,在电子枪扫完一屏换页时,将缓存中数据的复制到主页面显示。
SuperQM 2001-02-07
  • 打赏
  • 举报
回复
1、申请一块内存pGraphicMem;
2、将图画到pGraphicMem中;
3、使用memcpy拷贝到显存。
当然用显存页是个更好的选择,但上述方法比较简单,而且做些淡入淡出等等效果也比较方便,不过后者也不会复杂到哪里去,你看着选吧
  • 打赏
  • 举报
回复
double buffering

(方法1)切换显存页,如果显存足够大,你总共拥有两倍以上的可显示部分的显存,并且显卡支持分页,可以把显存分两页,重新便你的画点程序,显示第一页时画第二页,画完再显示第二页,这时再画第一页,来回交替,就看不见画的过程了。

(方法2)重编你的画点程序,不要画到显存里,而是在内存的,模拟的一块“显存”里面,在这个假“显存”里完成一屏动作再 copy 整块假显存到真显存里面,就达到你的效果了。如果不是 watcom c/c++ 就必须在扩展内存(XMS)分配内存,因为 DOS 的 640K 内存太有限了。
SCUM 2000-07-13
  • 打赏
  • 举报
回复
唯一可行的方法是 >>>>>> Double Buffering <<<<<<<
因为刷屏是在完成所有处理后进行,所以绝对不会闪烁或流动。
DOS 下 c&c, kknd 是这样做的, win 下 directx 也是这样的。
在DOS下实现也不复杂。
RuFeng 2000-07-12
  • 打赏
  • 举报
回复
重新设计写点程序的顺序,从中间开始向外写,不过这样效率可能比一般的慢,但有这效果,只是算法问题!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧