複数の関数をまたぐデプスステートの設定
Hiragi(GKUTH) 2016/06/07(Tue) 19:48
いつも使用させてもらっております。
現在弾幕STGを製作しております。描画順序を
Graphics2D::SetZにて設定し、管理しようとしています。
グローバルな定数として
//描画順序定義 上ほど背面に描画される
enum
{
DEP_BACK,
DEP_ENEMY_SHOT,
DEP_ENEMY,
DEP_PLAYER_SHOT,
DEP_PLAYER,
DEP_BOARD,
DEP_SCORE,
DEP_MENU,
};
と言うような宣言をし、各々のクラスの描画関数内で、Graphics2D::SetZに上記の値を渡して
描画順序を設定しようとしていますが、見た目上変化がありません。 加えて関数内で順序を入れ替えても(SetZに渡す値を入れ替えても)見た目に変化がありません。
どのような原因、または改善策があるのでしょうか、よろしくお願い致します。
例として敵画像および弾の描画関数を貼っておきます
void Enemy::Draw()
{
//弾描画
Graphics2D::SetZ(DEP_ENEMY_SHOT);
for (std::list<shot_t>::iterator blItr = Bullet.begin();blItr != Bullet.end();)
{
ShotImg.drawAt(blItr->Pos);
++blItr;
}
//キルフラグが立っていなければ描画
Graphics2D::SetZ(DEP_ENEMY);
if(!killflag)
{
EnemyImg(EnemyRect.beginX, EnemyRect.beginY, EnemyRect.sizedivX, EnemyRect.sizedivY).drawAt(Pos.x - 1, Pos.y);
}
}
Reputeless 2016/06/08(Wed) 00:56