其次是 游戏中的绘图一般都使用了 directdraw绘图的,如果设计到图像的选装则使用direct3D,因为3d旋转比2D矩阵算法来的容易
在创建directdraw对象后 可以调用 setcolerkey 设置色彩键,
在VB 中如果你不追求速度可以用gdiplus绘图 就是 GDI+,直接把图片透明的绘制在picture上,它会自动识别透明色
这个简单
首先用:
GdiplusStartup 设置GDI+
然后
GdipCreateFromHDC 绑定到绘制的图片
GdipLoadImageFromFile 加载带透明信息的图片比如 gif ,ICO,png 等格式的
GdipGetImageWidth
GdipGetImageHeight 获得图片的大小
GdipDrawImageRect 绘制图片
GdipDisposeImage 处理图像
GdipDeleteGraphics 删除
GdiplusShutdown 关闭 和卸载
至于API 的声明 和 对象的创建代码有点多,在说网上有的是我就不写的
一般是对图片执行两次bitblt操作完成的 源图片是两个 一个白底一个黑底
Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As RasterOpConstants) As Long
列
BitBlt backbuffer, (player.X * TILESIZE), (player.Y * TILESIZE) - 10 + player.offset, TILESIZE, TILESIZE, playersMask, player.BmpX + player.Frame, player.BmpY, SRCAND
BitBlt backbuffer, (player.X * TILESIZE), (player.Y * TILESIZE) - 10 + player.offset, TILESIZE, TILESIZE, playersBmp, player.BmpX + player.Frame, player.BmpY, SRCPAINT