機能
複数のスプライトをまとめて扱いたい場合に、この構造体を使用する
また、SetAutoDel()を用いることにより、関数からreturnした場合に
自動的にスプライトを削除することができる。
変数
| 型 | 変数名 | 目的 |
| int | m_bAutoDelete; | デストラクタ時にSPを削除するか否かのフラグ |
| array@int | m_nSP; | スプライト登録配列 |
取得系メソッド
機能:登録個数取得。
int sact_group_t::Numof()
{
return m_nSP.Numof();
}
機能:登録スプライト番号取得
int sact_group_t::GetSpriteNum(int nIndex)
{
return m_nSP[nIndex];
}
機能:
設定・作成系メソッド
機能:
機能:
機能:
機能:
機能:
機能:
機能:
機能:
機能:
機能:
機能:
登録・値の保持系メソッド
機能:デストラクタ時にSP削除をするフラグを立てる
void sact_group_t::SetAutoDel()
{
m_bAutoDelete = true;
}
機能: 登録。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 sact_group_t::AddNew()
{
int nSP = SP_GET_UNUSE_NUM();
Add1(nSP);
return nSP;
}
機能:登録(追加)配列版 配列内の番号のスプライトをすべて登録
void sact_group_t::AddArray(array@int vSP)
{
int c = vSP.Numof();
int i;
for(i = 0; i < c; ++i)
{
Add1(vSP[i]);
}
}
解除・削除系メソッド
機能:登録全解除。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();
}
}
機能:登録解除。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;
}
}
}
機能:
コンストラクタ
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]);
}
}
}
グローバル宣言
なし