哪位朋友會在DOS下的16位真彩色中使用談入談出技術?急!!!


我在做一個游戲,使用Borland C++ 3.1編程,16位真彩色。可是現在還找不到一個好的方法進行談入談出處理。還有那些閃電、激光、爆炸的效果等。小弟百思不得其解。哪個大哥行個好吧?

7 个解决方案

#1


循環將象素的RGB值變大變小就可以了。
現在代碼可不好找。

#2


請問:我一個640X480的屏幕,如果是將RGB值減少再寫入,那么,我就要循環640X480X255次來寫點,誰有這么快的寫點函數在Borland C++ 3.1下,還可以使圖像不閃爍???

#3


不,你最好自已實現寫點函數,這樣比較高效,用ASM來實現,找本VESA的書看一看,采用
一些優化的算法,盡量采用順序(連續)地寫屏,這樣可以比較高效的優化算法方便的寫屏,不要用除法,就是匯編里面也不要用,采用減法來代替,如果要一定計算,采用80387指令來做吧!而且改變RGB值的速度不要太快,這樣,在1S內相近的畫面重復時,不會太閃爍!

#4


我看見有些人的寫點程序連換頁這一步都不要????!!!有沒有這回事????

#5


是的,用VESA的高版本,是可以支持大線性內存的,但這樣做兼容性就不太好了!有一些顯卡不支持的!你考慮一下吧!

#6


To lyzcom:

我做過一次:
    用 watcom c++ 11.0, 在內存中建立雙緩沖,所有操作在內存中進行,刷屏時
一次性copy到vram中。絕對不會閃爍,速度還可以。
兼容度:8bit, 16bit, 24bit
    開始時也用 bc 試過,但是內存用起來太麻煩了。

有興趣我們聯系一下,交個朋友吧!

#7


  首先要確定以下幾個原則:
  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次就可以。
  

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com