0

モノゲームを使ったゲームの開発で、画面右上のボタンでゲームを一時停止したいのですが、他の要素が描画されているときだけpauseImageが表示されません。Draw() 関数のコードをここに置きます。

SBatch.Begin();

            SBatch.Draw(PauseImage,new Vector2(1024,50), Color.White);

            if (_isPaused)
            {
                SBatch.Draw(ResumeImage, new Vector2(500, 300), Color.White);
                SBatch.Draw(QuitImage,new Vector2(600,300),Color.White);
            }
            SBatch.Draw(_castel.Image, _castel.PosCastle, Color.White);


            SBatch.DrawString(LineFont, _life + "/1000", _castel.PosLife, Color.Black);
            SBatch.DrawString(LineFont, "Score:" + _score, new Vector2(_castel.PosLife.X,_castel.PosLife.Y+50), Color.Black);


            SBatch.End();


            foreach (EnemyUnit t in _enemyUnits)
            {
                t.AnimatedSprite.Draw(SBatch, t.Pos);
                if (_mouseState.LeftButton == ButtonState.Pressed && t.Area.Limit(_mouseState))
                {
                    float temp;
                    temp = t.Pos.Y;
                    t.Pos.Y -= 470;
                    MouseAttack.Draw(SBatch, t.Pos);
                    t.Pos.Y = temp;
                }
            }


            SBatch.End();
        }

        base.Draw(gameTime);

画像は、Texture2D オブジェクトの通常の png ロードです。

4

1 に答える 1

1

pauseImage を描画する部分をコードの最後に移動して、最後に他のすべての上に描画されるようにします。次にSBatch.End()、コードから最初のものを削除します。

foreach (EnemyUnit t in _enemyUnits)
{
    t.AnimatedSprite.Draw(SBatch, t.Pos);
    if (_mouseState.LeftButton == ButtonState.Pressed && t.Area.Limit(_mouseState))
    {
        float temp;
        temp = t.Pos.Y;
        t.Pos.Y -= 470;
        MouseAttack.Draw(SBatch, t.Pos);
        t.Pos.Y = temp;
    }
}

if (_isPaused)
{
    SBatch.Draw(ResumeImage, new Vector2(500, 300), Color.White);
    SBatch.Draw(QuitImage,new Vector2(600,300),Color.White);
}

SBatch.End();
于 2013-06-13T18:36:43.053 に答える