Sprite::Sprite(Bitmap* pBitmap, POINT ptPosition, POINT ptVelocity, int iZOrder, RECT& rcBounds, BOUNDSACTION baBoundsAction) { // Initialize the member variables m_pBitmap = pBitmap; SetRect(&m_rcPosition, ptPosition.x, ptPosition.y, ptPosition.x + pBitmap->GetWidth(), ptPosition.y + pBitmap->GetHeight()); CalcCollisionRect();//(add) m_ptVelocity = ptVelocity; m_iZOrder = iZOrder; CopyRect(&m_rcBounds, &rcBounds); m_baBoundsAction = baBoundsAction; m_bHidden = FALSE; m_iRow = m_iCol = 1; m_iNumFrame = 1; m_iCurFrame = 0; m_iDelayFrame=0; m_iTriggerFrame=0; pFrameList = NULL; m_bShowAnim = false; m_bDying = FALSE; m_bOneCycle = FALSE; }
Sprite::Sprite(Bitmap* pBitmap) { // Initialize the member variables m_pBitmap = pBitmap; SetRect(&m_rcPosition, 0, 0, pBitmap->GetWidth(), pBitmap->GetHeight()); CalcCollisionRect();//(add) m_ptVelocity.x = m_ptVelocity.y = 0; m_iZOrder = 0; SetRect(&m_rcBounds, 0, 0, 640, 480); m_baBoundsAction = BA_STOP; m_bHidden = FALSE; m_iRow = m_iCol = 1; m_iNumFrame = 1; m_iCurFrame = 0; m_iDelayFrame=0; m_iTriggerFrame=0; pFrameList = NULL; m_bShowAnim = false; m_bDying = FALSE; m_bOneCycle = FALSE; }
Sprite::Sprite(Bitmap* pBitmap, RECT& rcBounds, BOUNDSACTION baBoundsAction) { // Calculate a random position int iXPos = rand() % (rcBounds.right - rcBounds.left); int iYPos = rand() % (rcBounds.bottom - rcBounds.top); // Initialize the member variables m_pBitmap = pBitmap; SetRect(&m_rcPosition, iXPos, iYPos, iXPos + pBitmap->GetWidth(), iYPos + pBitmap->GetHeight()); CalcCollisionRect();//(add) m_ptVelocity.x = m_ptVelocity.y = 0; m_iZOrder = 0; CopyRect(&m_rcBounds, &rcBounds); m_baBoundsAction = baBoundsAction; m_bHidden = FALSE; m_iRow = m_iCol = 1; m_iNumFrame = 1; m_iCurFrame = 0; m_iDelayFrame=0; m_iTriggerFrame=0; pFrameList = NULL; m_bShowAnim = false; m_bDying = FALSE; m_bOneCycle = FALSE; }
Sprite::Sprite(Bitmap* pBitmap,RECT& rcBounds,BOUNDSACTION baBoundsAction) { // int iXPos=rand()%(rcBounds.right-rcBounds.left); // int iYPos=rand()%(rcBounds.bottom-rcBounds.top); m_pBitmap=pBitmap; SetRect(&m_rcPosition,0,0,pBitmap->GetWidth(), pBitmap->GetHeight()); m_rcMouseNotify=m_rcPosition; m_ptVelocity.x=m_ptVelocity.y=0; m_iZOrder=10000; CopyRect(&m_rcBounds,&rcBounds); m_baBoundsAction=baBoundsAction; m_bHidden=FALSE; m_iNumFrames=1; m_iCurFrame=m_iFrameDelay=m_iFrameTrigger=0; m_bDying=FALSE; m_bOneCycle=FALSE; m_stType=stNORMAL; CalcCollisionRect(); }
Sprite::Sprite(Bitmap *pBitmap, POINT ptPosition,POINT ptVelocity,int iZOrder, RECT& rcBounds,BOUNDSACTION baBoundsAction){ m_pBitmap = pBitmap; m_iNumFrames = 1; m_iCurFrame = m_iFrameDelay = m_iFrameTrigger = 0; SetRect(&m_rcPosition,ptPosition.x,ptPosition.y,ptPosition.x + pBitmap->GetWidth(),ptPosition.y + pBitmap->GetHeight()); CalcCollisionRect(); m_ptVelocity = ptVelocity; m_iZOrder =iZOrder; CopyRect(&m_rcBounds,&rcBounds); m_baBoundsAction = baBoundsAction; m_bHidden = FALSE; m_bDying = FALSE; m_bOneCycle = FALSE; }
Sprite::Sprite(Bitmap* pBitmap){ //初始化成员变量 m_pBitmap = pBitmap; m_iNumFrames = 1; m_iCurFrame = m_iFrameDelay = m_iFrameTrigger = 0; SetRect(&m_rcPosition,0,0,pBitmap->GetWidth(),pBitmap->GetHeight()); CalcCollisionRect(); m_ptVelocity.x = m_ptVelocity.y = 0; m_iZOrder = 0; SetRect(&m_rcBounds,0,0,640,480);//默认的子画面边界,它对应于默认的游戏屏幕大小 m_baBoundsAction = BA_STOP; m_bHidden = FALSE; m_bDying = FALSE; m_bOneCycle = FALSE; }
Sprite::Sprite(Bitmap* pBitmap,RECT& rcBounds, BOUNDSACTION baBoundsAction){ //计算一个随机位置 int iXPos = rand() % (rcBounds.right - rcBounds.left); int iYPos = rand() % (rcBounds.bottom - rcBounds.top); //初始化成员变量 m_pBitmap = pBitmap; m_iNumFrames = 1; m_iCurFrame = m_iFrameDelay = m_iFrameTrigger = 0; SetRect(&m_rcPosition,iXPos,iYPos,iXPos + pBitmap->GetWidth(),iYPos + pBitmap->GetHeight()); CalcCollisionRect(); m_ptVelocity.x = m_ptVelocity.y = 0; m_iZOrder = 0; CopyRect(&m_rcBounds,&rcBounds); m_baBoundsAction = baBoundsAction; m_bHidden = FALSE; m_bDying = FALSE; m_bOneCycle = FALSE; }
Sprite::Sprite(Bitmap* pBitmap,BOUNDSACTION baBoundsAction) { m_pBitmap=pBitmap; SetRect(&m_rcPosition,0,0,pBitmap->GetWidth(),pBitmap->GetHeight()); m_rcMouseNotify=m_rcPosition; m_ptVelocity.x=m_ptVelocity.y=0; m_iZOrder=10000; SetRect(&m_rcBounds,0,0,856,630); m_baBoundsAction=baBoundsAction; m_bHidden=FALSE; m_iNumFrames=1; m_iCurFrame=m_iFrameDelay=m_iFrameTrigger=0; m_bDying=FALSE; m_bOneCycle=FALSE; m_stType=stNORMAL; CalcCollisionRect(); }