⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spritebase.cpp

📁 RGA: Biowaste Game Example This C++ application demonstrates how to create a 2D mobile game for S60
💻 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 + -