全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1757
推到 Plurk!
推到 Facebook!

超難問題三部曲--畫面問題

 
kynix
初階會員


發表:37
回覆:100
積分:37
註冊:2002-06-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-01 22:08:27 IP:61.225.xxx.xxx 未訂閱
假如我做一個監視螢幕的程式,如果遇到如世紀帝國2等遊戲會變換螢幕色盤的畫面,請問要如何正常顯示該畫面? 呼呼,終於打完了希望有善心人士替我解答 世界上最美麗的東西就是真實的自己~~~
------
智慧是命運的征服者
linkolong
一般會員


發表:4
回覆:35
積分:12
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-06-02 15:35:48 IP:61.70.xxx.xxx 未訂閱
我只知道會用到DirectX,好像如世紀帝國要在DirectX 7 以上才能執行 有關direct x我想沒有人有深究吧,我幫你查詢到有關directx的教學網站,裡面有些相關函數,http://direct.at/directx
kynix
初階會員


發表:37
回覆:100
積分:37
註冊:2002-06-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-06-02 22:08:30 IP:61.216.xxx.xxx 未訂閱
我知道,但重點在如何顯示正確的色盤,也許要好好研究這個遊戲才有辦法吧! 程式就是藝術,藝術就是生命,生命就是美
------
智慧是命運的征服者
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-06-02 22:41:11 IP:192.168.xxx.xxx 未訂閱
引言: 我知道,但重點在如何顯示正確的色盤,也許要好好研究這個遊戲才有辦法吧! 程式就是藝術,藝術就是生命,生命就是美
記得windows api中有函數可以抓目前營幕設定的色盤表喔! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
kynix
初階會員


發表:37
回覆:100
積分:37
註冊:2002-06-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-06-03 16:46:48 IP:61.216.xxx.xxx 未訂閱
哪一個,能詳細說明嗎? 程式就是藝術,藝術就是生命,生命就是美
------
智慧是命運的征服者
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-06-04 08:21:21 IP:192.168.xxx.xxx 未訂閱
引言: 哪一個,能詳細說明嗎? 程式就是藝術,藝術就是生命,生命就是美
介紹一些資料給您參考,先試試看: DirectX7 for delphi6(jedi) DirectX8 for delphi6(jedi) DirectX Programming with Delphi White Paper
delphi directdraw test1 直接繪圖法⼅
delphi directdraw test2 調色盤淡入淡出功能示範
~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-06-04 09:01:39 IP:192.168.xxx.xxx 未訂閱
我有試出來
procedure TForm1.Button1Click(Sender: TObject);
var dtCanvas:tcanvas;
    bitmap:tbitmap;
    nColors:integer;
    logPal:LOGPALETTE;
    PlogPal:PLOGPALETTE;
    src,dest:TRect;
begin
  dtCanvas :=TCanvas.create; 
  dtCanvas.Handle:=GetDC(0);       bitmap:=TBitmap.create; 
  bitmap.Width:=Width; 
  bitmap.Height:=Height;      nColors:=GetDeviceCaps(Canvas.Handle,SIZEPALETTE); 
PlogPal:=@logpal;
  GetMem(PlogPal, sizeof(LOGPALETTE) (nColors-1)*sizeof(PALETTEENTRY));
  logPal.palVersion:=$300; logPal.palNumEntries:=nColors;
  GetSystemPaletteEntries(Canvas.Handle,0,nColors,logPal.palPalEntry); 
  bitmap.Palette:=CreatePalette(logPal);       src:=BoundsRect; 
  dest:=Rect(0,0,Width,Height);
  bitmap.Canvas.CopyRect(dest,dtCanvas,src);      bitmap.SaveToFile('c:\Screen.bmp'); 
  freeMem(PlogPal);      bitmap.free;
  dtCanvas.free;
end;
您先試試! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-04-25 13:05:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!