作者itoc, 信區: itoc
標題[文件] refresh() 的說明
時間04/02/07
作者: games.bbs@help.cse.ttit.edu.tw (沉睡中), 看板: plan
標題: [文件] refresh() 的說明
時間: 秘密情人資訊站 (Fri May 5 17:12:23 1995)
※ 引述『opus.bbs@bbs.cs.nthu (浮生若夢)』之銘言:
: 請問 refresh() 搭配 clrtoeol() 該怎麼用,
: 我用起來會出現殘影。
請看 refresh(), visio.c 利用一個結構存放整個螢幕的資料, 所以 refresh()
只做新舊資料間的比對, 如果有不同才印出, 而位置是取絕對位址, 沒有考慮到
ANSI 碼的情形...
舉例 : 假設目前螢幕為 [1234567890]
要蓋掉的字為 [*[1;33mabc]
結果會變成 [abc4567890]
因為 refresh() 認為已經都蓋掉了... 但實際上由於 ANSI 碼的影響, 會有殘留
程式要改為 clrtoeol(); outs("\033[1;33mabc"); refresh();
--
程式修改 :簡顯鑑 games.bbs@help.cse.ttit.edu.tw