首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

DirectDraw C# 入門攻略(四):角色動畫、ColorKey 透明色與遊戲引擎雛形

     編輯:關於C語言

在 Form_Paint 與 Form_Resize 加入 draw() 即可正確繪製

接著在 Form 上顯示角色動畫。需額外一個 Surface 存放角色素材圖(通常將所有動作框架做在單一 BMP 檔)。

程式碼實作

dDsurfaceActor = dDraw.CreateSurfaceFromFile("c:\\actorMove.bmp", ref dDDesc2);
rect.Top = 0; rect.Left = 0;
rect.Bottom = dDDesc2.lHeight; rect.Right = 140; // 每個動作寬 140 像素
rectSec.Top += 60; rectSec.Left += 30;
rectSec.Bottom -= (rect.Bottom - rect.Top) / 2;
rectSec.Right -= (rect.Right - rect.Left) / 2;
dDsurface.Blt(ref rectSec, dDsurfaceActor, ref rect, DxVBLib.CONST_DDBLTFLAGS.DDBLT_WAIT);

僅顯示來源圖片指定區域。

ColorKey 移除背景色

原圖背景為黑色,Blt 會連同背景一起繪製。設定 ColorKey 屏蔽不需要的顏色範圍:

DxVBLib.DDCOLORKEY dDcolorKey = new DxVBLib.DDCOLORKEY();
dDcolorKey.high = 20; // 被屏蔽顏色上限
dDcolorKey.low = 0;   // 被屏蔽顏色下限
dDsurfaceActor.SetColorKey(DxVBLib.CONST_DDCKEYFLAGS.DDCKEY_SRCBLT, ref dDcolorKey);
dDsurface.Blt(ref rectSec, dDsurfaceActor, ref rect,
    DxVBLib.CONST_DDBLTFLAGS.DDBLT_WAIT | DxVBLib.CONST_DDBLTFLAGS.DDBLT_KEYSRC);

正確顯示角色,背景透明。

鍵盤回應與遊戲引擎雛形

鍵盤按下時重繪 Form、按順序顯示角色圖框、更新 rect 位置即可。DirectDraw 繪圖速度極快,除遊戲外可用於播放 AVI/MPEG、螢幕保護程式(搭配解碼模組)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved