首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

菜鸟!非常郁闷

2012-02-24 
初学者求助!!!!!非常郁闷啊我用的是VC++。NET2005+DX7开发2D游戏但我在进行BltFast调用时总是出错并且找不

初学者求助!!!!!非常郁闷啊
我用的是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的面积

热点排行