|
|
发表于 2006-12-1 21:48:00
|
显示全部楼层
Re:2D游戏制作-新手问题探讨帖
当然不会出错了.因为用剪切板的话会影响速度(具体我也没试过,是别人告诉我的)而自己写个边界判断,好简单的,自己还可以控制.我是这么写的:
void CBuilding: rawBuilding( int BaseX, int BaseY )
{
RECT rc;
int x, y;
x = BaseX - XYOffset.x;
y = BaseY - XYOffset.y;
rc.left = rcSrc.left;
rc.top = rcSrc.top;
rc.right = rcSrc.right;
rc.bottom = rcSrc.bottom;
if ( x <= - iW || x >= 800 || y <= -iH || y >= 600 )
{
return;
}
if ( x < 0 )
{
rc.left = rcSrc.left - x;
x = 0;
}
if ( y < 0 )
{
rc.top = rcSrc.top - y;
y = 0;
}
if ( ( 800 - x ) < ( rcSrc.right - rcSrc.left ) )
{
rc.right = rcSrc.right - ( ( rcSrc.right - rcSrc.left ) - ( 800 - x ) );
}
DDraw.g_lpDDSBack->BltFast( x, y, lpSurface, &rc, DDBLTFAST_SRCCOLORKEY );
}
|
|