sact_group_t

Last-modified: 2007-08-17 (金) 15:11:03

機能

 複数のスプライトをまとめて扱いたい場合に、この構造体を使用する
 また、SetAutoDel()を用いることにより、関数からreturnした場合に
 自動的にスプライトを削除することができる。

変数

変数名目的
intm_bAutoDelete;デストラクタ時にSPを削除するか否かのフラグ
array@intm_nSP;スプライト登録配列

取得系メソッド

int Numof();

機能:登録個数取得。

int sact_group_t::Numof()
{
	return m_nSP.Numof();
}
int GetSpriteNum(int nIndex);

機能:登録スプライト番号取得

int sact_group_t::GetSpriteNum(int nIndex)
{
	return m_nSP[nIndex];
}
int CheckPoint(int nX, int nY);

機能:

設定・作成系メソッド

void SetCG(int nCG);

機能:

void Copy(int nSrcSP);

機能:

void Create(int nWidth, int nHeight, int nR, int nG, int nB, int nBlendRate);

機能:

void SetPos(int nX, int nY);

機能:

void SetShow(int bShow);

機能:

void SetBlendRate(int nBlendRate);

機能:

void SetDrawMethod(int nDrawMethod);

機能:

void SetZ(int nZ);

機能:

void ddPos(int nAddX, int nAddY);

機能:

void ReverseShow();

機能:

void AddZ(int nAddZ);

機能:

登録・値の保持系メソッド

void SetAutoDel();

機能:デストラクタ時にSP削除をするフラグを立てる

void sact_group_t::SetAutoDel()
{
	m_bAutoDelete = true;
}
void Add(int nSP01, int nSP02=0, int nSP03=0, int nSP04=0, int nSP05=0, int nSP06=0, int nSP07=0, int nSP08=0, int nSP09=0, int nSP10=0);

機能: 登録。10個まで一回の関数呼出で登録可能。(登録可能な総個数は制限無し)
    (個別に Add(100); Add(101); のように書いてもよい)

void sact_group_t::Add(int nSP01, int nSP02, int nSP03, int nSP04, int nSP05, int nSP06, int nSP07, int nSP08, int nSP09, int nSP10)
{
	if(nSP01 != 0) Add1(nSP01);
	if(nSP02 != 0) Add1(nSP02);
	if(nSP03 != 0) Add1(nSP03);
	if(nSP04 != 0) Add1(nSP04);
	if(nSP05 != 0) Add1(nSP05);
	if(nSP06 != 0) Add1(nSP06);
	if(nSP07 != 0) Add1(nSP07);
	if(nSP08 != 0) Add1(nSP08);
	if(nSP09 != 0) Add1(nSP09);
	if(nSP10 != 0) Add1(nSP10);
}
int AddNew();

機能:空きスプライト番号登録。スプライト番号を返す。

int sact_group_t::AddNew()
{
	int nSP = SP_GET_UNUSE_NUM();
	Add1(nSP);
	return nSP;
}
void AddArray(array@int vSP);

機能:登録(追加)配列版 配列内の番号のスプライトをすべて登録

void sact_group_t::AddArray(array@int vSP)
{
	int c = vSP.Numof();
	int i;
	for(i = 0; i < c; ++i)
	{
		Add1(vSP[i]);
	}
}

解除・削除系メソッド

void Clear(int bDeleteSP = false);

機能:登録全解除。bDeleteSPがtrueで呼び出された場合、スプライトの削除も行われる。

void sact_group_t::Clear(int bDeleteSP)
{
	int	i = 0;
	int	c = m_nSP.Numof();
	if(c != 0)
	{
		if(bDeleteSP)
		{
			for(i = 0; i < c; ++i)
			{
				SP_DEL(m_nSP[i]);
			}
		}
		m_nSP.Free();
	}
}
void Erase(int nSP, int bDeleteSP = false);

機能:登録解除。bDeleteSPがtrueで呼び出された場合、スプライトの削除も行われる。
 すべての登録を解除する場合はClear()を使用する。

void sact_group_t::Erase(int nSP, int bDeleteSP)
{
	int	i = 0;
	int	j = 0;
	int	c = m_nSP.Numof();
	for(i = 0; i < c; ++i)
	{
		if(m_nSP[i] == nSP)
		{
			if(bDeleteSP)
			{
				SP_DEL(m_nSP[i]);
			}
			for(j = i; j < c - 1; ++j)
			{
				m_nSP[j] = m_nSP[j + 1];
			}
			m_nSP.Realloc(c - 1);
			return;
		}
	}
}
void Del();

機能:

コンストラクタ

sact_group_t();

sact_group_t::sact_group_t()
{
	m_bAutoDelete=false;
}

デストラクタ

sact_group_t()

sact_group_t::~sact_group_t()
{
	int i = 0;
	int c = 0;
	if(m_bAutoDelete)
	{
		c = m_nSP.Numof();
		for(i = 0; i < c; ++i)
		{
			SP_DEL(m_nSP[i]);
		}
	}
}

グローバル宣言

 なし