📄 sprite.cpp
字号:
#include "Sprite.h"
namespace gamespace
{
CSprite::CSprite()
{
}
CSprite::~CSprite()
{
delete iSequence;
}
void CSprite::SetSource(CFbsBitmap* aBmp,CFbsBitmap* aBmpMask,TInt aCellWidth/*=0*/,TInt aCellHeight/*=0*/ )
{
CLayer::SetSource(aBmp,aBmpMask,aCellWidth,aCellHeight);
//设置默认的序列
iSequence->Set(iRows*iCols);
}
void CSprite::SetSequence( TInt* pSeq,TInt seqLength,TInt* aPDelays)
{
if( seqLength < 0 || pSeq == NULL )
return;
iSequence->Set(pSeq,seqLength,aPDelays);
}
void CSprite::SetSequence( CSequence* iSequence )
{
delete iSequence;
this->iSequence=iSequence;
}
void CSprite::PrevFrame()
{
iSequence->PrevFrame();
}
void CSprite::NextFrame()
{
iSequence->NextFrame();
}
void CSprite::Draw(CBitmapContext& aGc) const
{
TInt frameIndex=*iSequence;//得到当前帧索引
CLayer::Draw(frameIndex,aGc);
}
void CSprite::SetCurrentFrame( TInt sequenceIndex )
{
iSequence->SetCurrentIndex(sequenceIndex);
}
void CSprite::Draw( TInt frameIndex,CBitmapContext& aGc) const
{
CLayer::Draw(frameIndex,aGc);
}
CSprite* CSprite::NewL( CFbsBitmap* aBmp,CFbsBitmap* aBmpMask,TInt aCellWidth/*=0*/,TInt aCellHeight/*=0*/ )
{
CSprite* self=CSprite::NewLC(aBmp,aBmpMask,aCellWidth,aCellHeight);
CleanupStack::Pop();
return self;
}
CSprite* CSprite::NewLC( CFbsBitmap* aBmp,CFbsBitmap* aBmpMask,TInt aCellWidth/*=0*/,TInt aCellHeight/*=0*/ )
{
CSprite* self=new(ELeave)CSprite;
CleanupStack::PushL(self);
self->ConstructL(aBmp,aBmpMask,aCellWidth,aCellHeight);
return self;
}
void CSprite::ConstructL( CFbsBitmap* aBmp,CFbsBitmap* aBmpMask,TInt aCellWidth/*=0*/,TInt aCellHeight/*=0*/ )
{
iSequence=new(ELeave)CSequence;
SetSource(aBmp,aBmpMask,aCellWidth,aCellHeight);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -