Delphi 經典遊戲程式設計40例 的學習 例3 圖樣的重疊與多重地圖01
阿新 • • 發佈:2021-11-23
Xpat_Bmap :=TBitmap.Create; Xpat_Bmap.Width := 256; Xpat_Bmap.Height :=256; Rect_L :=Rect(0,0,256,256); Xpat_Bmap.Canvas.CopyMode :=cmSrcCopy; Xpat_Bmap.Canvas.CopyRect(Rect_L,Load_Bmap.Canvas,Rect_L); Xpat_Bmap.Canvas.Brush.Color :=clBlack; Xpat_Bmap.Canvas.BrushCopy(Rect_L,Load_Bmap,Rect_L,clWhite); Xpat_Bmap.Canvas.CopyMode :=cmMergePaint; Xpat_Bmap.Canvas.CopyRect(Rect_L,Load_Bmap.Canvas,Rect_L);
在例2的基礎上增加的
核心程式碼
去除用模板的製作。
顏色標示 簡單舉例 ,某點 RGB 111 純白 000,純黑 ,100,紅,010 綠,001藍
原理 圖樣庫定義一個透明色,純白。 111
將圖樣庫轉換成 去除模板圖樣庫,透明色和圖樣庫相反,為純黑,000 ,用的筆刷,黑色替換了所有白色
將圖樣庫取反後 與 黑色000的透明色的圖樣庫 或,這樣 ,黑色還是黑色,其他有顏色的為全1 ,變成 全白了,
比如 原來圖樣是010,取反後 101 ,再或 111.
就是上面圖片的樣子了。
全0 ,全1 是不作為顏色使用的。 這裡僅僅 簡單舉例 只用了了一位,好理解。 實際 R G B 的R是8位,或者 32位的。
用的都是 TBITMAP 這個 類的 函式,嗯,應該叫方法吧。
具體的有creat ,
canvas ,畫布,子類?
copymode canvas 的屬性?
bursh 畫布的子類?
color 刷子的屬性?
burshcopy ,copyrec ,畫布的方法?
一知半解,此書也沒有講解這些。