📄 spritebase.cpp
字号:
#include "SpriteBase.h"
CSpriteBase::CSpriteBase(CApplicationBase& aApp)
: iApp(aApp)
{
}
CSpriteBase::~CSpriteBase()
{
}
void CSpriteBase::SetPosition(const TVector2& aPos)
{
iPos = aPos;
}
void CSpriteBase::SetDirection(const TVector2& aDir)
{
iDir = aDir;
}
void CSpriteBase::SetAcceleration(const TVector2& aAcc)
{
iAcc = aAcc;
}
void CSpriteBase::Update(const TReal64 aFrametime)
{
// add direction to position
iPos.iX += iDir.iX * aFrametime;
iPos.iY += iDir.iY * aFrametime;
// add acceleration to direction
iDir.iX += iAcc.iX * aFrametime;
iDir.iY += iAcc.iY * aFrametime;
}
void CSpriteBase::SetSize(const TSize& aSize)
{
iSize = aSize;
}
TSize CSpriteBase::Size() const
{
return iSize;
}
TBool CSpriteBase::IsVisible(const TVector2& /*aCamera*/) const
{
return ETrue;
}
TBool CSpriteBase::Collision(CSpriteBase& aSprite) const
{
// compute squared distance between sprites
TVector2 tmp = TVector2(iPos.iX - aSprite.iPos.iX, iPos.iY - aSprite.iPos.iY);
const TUint64 distancesq = (TUint64)tmp.LengthSq();
const TUint64 mindistance = ((iSize.iWidth >> 1) + (aSprite.iSize.iWidth >> 1));
// compare squared lengths
if ( distancesq < (mindistance * mindistance) )
{
return ETrue;
}
else
{
return EFalse;
}
}
CApplicationBase& CSpriteBase::App()
{
return iApp;
}
void CSpriteBase::SetId(TUint32 aId)
{
iId = aId;
}
TUint32 CSpriteBase::Id() const
{
return iId;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -