예제 #1
0
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;
}
예제 #2
0
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;

}
예제 #3
0
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;

}
예제 #4
0
파일: Sprite.cpp 프로젝트: codedhead/ra2td
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();
}
예제 #5
0
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;
}
예제 #6
0
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;
}
예제 #7
0
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;
}
예제 #8
0
파일: Sprite.cpp 프로젝트: codedhead/ra2td
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();
}