哪位朋友会在DOS下的16位真彩色中使用谈入谈出技术?急!!!

lyzcom 2000-07-12 04:16:00
我在做一个游戏,使用Borland C++ 3.1编程,16位真彩色。可是现在还找不到一个好的方法进行谈入谈出处理。还有那些闪电、激光、爆炸的效果等。小弟百思不得其解。哪个大哥行个好吧?
...全文
276 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
packager 2000-07-13
  • 打赏
  • 举报
回复
首先要确定以下几个原则:
1。用双缓冲的做法。如果是用watcom c/c++,内存方面没有什么问题,如果用bc,分配内存方面就要用到xms,ems等扩展内存,要自己写有关的函数库。
2。自己写一套在内存中画图(包括画点,画线,内存块操作)以及从内存copy到video ram的函数库。
3。对于fade in ,fade out还有其他屏幕特效.其作法就是在内存中对每一个点进行
RGB操作,然后system ram 到video ram.不过对于fade in,fade out,你倒不必进行
640x480x255次,因为每次增加或减少的步数可以取一个比较合适的值,比如16,这样只要
进行640x480x16次就可以。
SCUM 2000-07-13
  • 打赏
  • 举报
回复
To lyzcom:

我做过一次:
用 watcom c++ 11.0, 在内存中建立双缓冲,所有操作在内存中进行,刷屏时
一次性copy到vram中。绝对不会闪烁,速度还可以。
兼容度:8bit, 16bit, 24bit
开始时也用 bc 试过,但是内存用起来太麻烦了。

有兴趣我们联系一下,交个朋友吧!
RuFeng 2000-07-12
  • 打赏
  • 举报
回复
是的,用VESA的高版本,是可以支持大线性内存的,但这样做兼容性就不太好了!有一些显卡不支持的!你考虑一下吧!
lyzcom 2000-07-12
  • 打赏
  • 举报
回复
我看见有些人的写点程序连换页这一步都不要????!!!有没有这回事????
RuFeng 2000-07-12
  • 打赏
  • 举报
回复
不,你最好自已实现写点函数,这样比较高效,用ASM来实现,找本VESA的书看一看,采用
一些优化的算法,尽量采用顺序(连续)地写屏,这样可以比较高效的优化算法方便的写屏,不要用除法,就是汇编里面也不要用,采用减法来代替,如果要一定计算,采用80387指令来做吧!而且改变RGB值的速度不要太快,这样,在1S内相近的画面重复时,不会太闪烁!
lyzcom 2000-07-12
  • 打赏
  • 举报
回复
请问:我一个640X480的屏幕,如果是将RGB值减少再写入,那么,我就要循环640X480X255次来写点,谁有这么快的写点函数在Borland C++ 3.1下,还可以使图像不闪烁???
x86 2000-07-12
  • 打赏
  • 举报
回复
循环将象素的RGB值变大变小就可以了。
现在代码可不好找。

69,336

社区成员

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

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