Как мога да задам фиксирана зона за игра в xaml моноигра?

Създавам XAML Monogame и искам да задам фиксирана зона за игра в SwapChainBackgroundPanel. Имам предвид, представете си: екранът на играта (напр. 1920x1080) и зоната на играта (напр. 1280x800) са само част от това, а другото пространство е за различна информация в мрежата като резултат, ниво, опит и т.н., също различни бутони, като на тази снимка:

пример на екран


person Andrey Carter    schedule 06.05.2014    source източник


Отговори (1)


Можете да зададете няколко цели за изобразяване, към които да рисувате за вашата партида спрайтове. Бих направил цялата ви игрова логика или област да бъде изчертана като или да върна Texture2D в желания размер. След това във вашия Game1.cs или където и да било, позиционирате тази текстура съответно в допълнение към UI елементите, които рисувате.

public override Texture2D Draw(SpriteBatch spriteBatch)
    {
        spriteBatch.GraphicsDevice.SetRenderTarget(gameRenderTarget);
        spriteBatch.Begin(SpriteSortMode.FrontToBack, null);
        sky.Draw(spriteBatch);
        ground.Draw(spriteBatch);
        background.Draw(spriteBatch);
        player.Draw(spriteBatch);
        spriteBatch.End();

        return (Texture2D)finalRenderTarget;
    }

Сега цялата тази зона за игра е текстура, която трябва да се манипулира точно както всичко останало във вашата игра! Вашата основна игра може да дефинира предварително оформлението на играта и вие просто изобразявате всяка област според нуждите.

Другата опция е едно извикване на Draw, при което настройвате множество цели за изобразяване и просто предавате предишната цел за изобразяване, която да бъде изчертана в следващото извикване на spriteBatch.Draw между spriteBatch.Begin() и spriteBatch.End().

person JedH    schedule 17.05.2014