初学者求助!!!!!非常郁闷啊
我用的是VC++。NET2005+DX7开发2D游戏
但我在进行BltFast调用时总是出错
并且找不到错误的原因
函数如下:
int DirectSurfaceDraw(int x,int y,LPDIRECTDRAWSURFACE7 src,bool HasColorKey)
{
RECT rt={0,0,100,100};
//ZeroMemory(&rt,sizeof(rt));
if(FAILED(BackSurface-> BltFast(x,y,src,&rt,DDBLTFAST_WAIT | (HasColorKey?DDBLTFAST_SRCCOLORKEY:0))))
{
LogFile.LogSave ( "BltFast操作失败! ");
return 0;
}
return 1;
}
BackSurface是缓冲页面 src是源页面
这2者都创建成功了
BltFast函数返回的结果不属于以下的任何一个:
DDERR_EXCEPTION
DDERR_GENERIC
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDRECT
DDERR_NOBLTHW
DDERR_SURFACEBUSY
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_WASSTILLDRAWING
谁能帮帮我啊
[解决办法]
你的原位图是不是小于100*100?
rt是不是计的过大?
BackSurface的大小是不是太小?
总之,可能是你的位图贴到BackSurface后,有部分超出了BackSurface的面积