機能
複数のスプライトをまとめて扱いたい場合に、この構造体を使用する
また、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]); } } }
グローバル宣言
なし