Code://set up rectangle for filling RECT rcFill; SetRect(&rcFill,ptLastPosition[0].x,ptLastPosition[0].y,ptLastPosition[0].x+gdicBall.GetWidth(),ptLastPosition[0].y+gdicBall.GetHeight()); //set up a ddbltfx DDBLTFX ddbltfx; memset(&ddbltfx,0,sizeof(DDBLTFX)); ddbltfx.dwSize=sizeof(DDBLTFX); //set up a color fill of black ddbltfx.dwFillColor=0; //blt the color fill to the back buffer lpddsBack->Blt(&rcFill,NULL,NULL,DDBLT_WAIT | DDBLT_COLORFILL, &ddbltfx); //set up source and destination rects for blitting the ball RECT rcSrc; RECT rcDst; SetRect(&rcSrc,0,0,gdicBall.GetWidth(),gdicBall.GetHeight()); CopyRect(&rcDst,&rcSrc); OffsetRect(&rcDst,ptBallPosition.x,ptBallPosition.y); /* ptBallPosition.x=0;//remember that this initialized the ptBallPosition.y=0; //position of the ball and all that. ptLastPosition[0].x=0; ptLastPosition[0].y=0; ptLastPosition[1].x=0; ptLastPosition[1].y=0; ptBallVelocity.x=16; ptBallVelocity.y=8;*/ //blit the ball lpddsBack->Blt(&rcDst,lpddsBall,&rcSrc,DDBLT_WAIT, NULL);//don't really need a source //copy current position of ball to old position ptLastPosition[0]=ptLastPosition[1]; ptLastPosition[1]=ptBallPosition; //move the ball ptBallPosition.x+=ptBallVelocity.x; ptBallPosition.y+=ptBallVelocity.y; //bounds checking //left side if(ptBallPosition.x<=0) ptBallVelocity.x=abs(ptBallVelocity.x); //top side if(ptBallPosition.y<=0) ptBallVelocity.y=abs(ptBallVelocity.y); //right side if(ptBallPosition.x>=(int)dwDisplayWidth-gdicBall.GetWidth()) ptBallVelocity.x=-abs(ptBallVelocity.x); //bottom side if(ptBallPosition.y>=(int)dwDisplayHeight-gdicBall.GetHeight()) ptBallVelocity.y=-abs(ptBallVelocity.y); //flip surfaces lpddsPrime->Flip(NULL,DDFLIP_WAIT);
I don't really understand that part that is in bold.