急死我了!请教DirectX8下实现动画(不带背景黑框)的方法
定义全局变量
DDCOLORKEY ddck;//结构
LPDIRECTDRAWSURFACE7 lpDirectDrawSurface;//主页面
LPDIRECTDRAWSURFACE7 lpDirectDrawSurfaceBuffer;//缓冲页面
LPDIRECTDRAWSURFACE7 lpDirectDrawBackSurface;//后备页面
RECT r;//结构
r.top=0;
r.left=0;
r.right =32;
r.bottom =32;
定义关键色设置函数
HRESULT SetColorKey(LPDIRECTDRAWSURFACE7 pdds, COLORREF rgb)
{
HRESULT hr;
ddck.dwColorSpaceHighValue=rgb;
ddck.dwColorSpaceHighValue =rgb;
hr=pdds->SetColorKey(DDCKEY_SRCBLT,&ddck);
return hr;
}
----------------------------------------------------------
程序中:
1)使用函数设置后备页面关键色为黑色
SetColorKey(lpDirectDrawBackSurface,RGB(0,0,0));
2)将后备页面的指定矩形框图像传送至缓冲页面
lpDirectDrawSurfaceBuffer->BltFast(0,0,lpDirectDrawBackSurface,&r,DDBLTFAST_SRCCOLORKEY);
3)主页面翻转
lpDirectDrawSurface->Flip(NULL, DDFLIP_WAIT);
结果:
程序动画实现,但动画人物带有黑色背景框,我试了很多方法,始终无法消除.
我用的是DirectX8 SDK,显示模式为800x600,16位高彩色,全屏独占模式;
设置,显示一切正常.
使用的图像为BMP,24位真彩色.
请教:
1)是否是16位色模式不能显示24位色图像?如果是,要怎样转换?
2)我的SetColorKey(LPDIRECTDRAWSURFACE7 pdds, COLORREF rgb)
函数中的代码是否有问题
ddck.dwColorSpaceHighValue=rgb;
ddck.dwColorSpaceHighValue =rgb;
能否这样写,转换后是否正确?
请高手教我800x600,16位高彩色,全屏独占模式下使用的图像为BMP,24位真彩色
实现动画(不带背景黑框)的方法
DDCOLORKEY ddck;//结构
LPDIRECTDRAWSURFACE7 lpDirectDrawSurface;//主页面
LPDIRECTDRAWSURFACE7 lpDirectDrawSurfaceBuffer;//缓冲页面
LPDIRECTDRAWSURFACE7 lpDirectDrawBackSurface;//后备页面
RECT r;//结构
r.top=0;
r.left=0;
r.right =32;
r.bottom =32;
定义关键色设置函数
HRESULT SetColorKey(LPDIRECTDRAWSURFACE7 pdds, COLORREF rgb)
{
HRESULT hr;
ddck.dwColorSpaceHighValue=rgb;
ddck.dwColorSpaceHighValue =rgb;
hr=pdds->SetColorKey(DDCKEY_SRCBLT,&ddck);
return hr;
}
----------------------------------------------------------
程序中:
1)使用函数设置后备页面关键色为黑色
SetColorKey(lpDirectDrawBackSurface,RGB(0,0,0));
2)将后备页面的指定矩形框图像传送至缓冲页面
lpDirectDrawSurfaceBuffer->BltFast(0,0,lpDirectDrawBackSurface,&r,DDBLTFAST_SRCCOLORKEY);
3)主页面翻转
lpDirectDrawSurface->Flip(NULL, DDFLIP_WAIT);
结果:
程序动画实现,但动画人物带有黑色背景框,我试了很多方法,始终无法消除.
我用的是DirectX8 SDK,显示模式为800x600,16位高彩色,全屏独占模式;
设置,显示一切正常.
使用的图像为BMP,24位真彩色.
请教:
1)是否是16位色模式不能显示24位色图像?如果是,要怎样转换?
2)我的SetColorKey(LPDIRECTDRAWSURFACE7 pdds, COLORREF rgb)
函数中的代码是否有问题
ddck.dwColorSpaceHighValue=rgb;
ddck.dwColorSpaceHighValue =rgb;
能否这样写,转换后是否正确?
请高手教我800x600,16位高彩色,全屏独占模式下使用的图像为BMP,24位真彩色
实现动画(不带背景黑框)的方法
...全文
相关推荐
vb学生信息管理系统全套(带源码)
vb学生信息管理系统全套(带源码) 希望能够对正在学习VB的人有所帮助
掌握INI文件的读写操作
INI文件是一种简单的文本文件,广泛用于存储程序的配置信息。它由一系列的节(Section)组成,每个节包含一组键(Key)和值(Value)对。节名通常括在方括号中,而键和值则用等号连接。例如:[Section1][Section2]在这个例子中,有”Section1”和”Section2”两个节。”Section1”中含有两个键值对:”key1”和”value1”,以及”key2”和”value2”。这种结构使得INI文件易于阅读和编辑,同时也便于程序解析。
vb学生信息管理系统全套(带源码)
VB做的系统,对毕业设置,考试考核可以作为参考。希望对有需要的人点帮助。
vb学生信息管理系统全套(源码)
vb学生信息管理系统全套 含有源码!可以自己更改成自己想要的作品
学生信息管理系统(vb)源代码
学生信息管理系统(vb)源代码学生信息管理系统(vb)源代码学生信息管理系统(vb)源代码学生信息管理系统(vb)源代码学生信息管理系统(vb)源代码学生信息管理系统(vb)源代码学生信息管理系统(vb)源代码


