Konzolový Had 9 – Uloženie hry

V deviatom diely sa pozrieme na obrazovku výberu slotu uloženia hry.

Úvod

Keďže naša hra bude mať automatické ukladanie, na začiatku si vyberieme slot, do ktorého sa bude ukladať. Táto obrazovka/scéna bude slúžiť práve na jeho výber. Meno triedy je SaveSelectScene.

Premenné a konštruktor

Na začiatku si opäť definujeme päť premenných, pričom dve budú verejné a tri súkromné. Súkromné premenné budú obsahovať rodiča, aktuálne vybraný slot a odpoveď na otázku, zatiaľ čo verejné budú obsahovať informáciu o tom, či sa jedná o hru viac hráčov a poslednú scénu.

public bool MP = false;
private int selectedItem = 0;
private Game Parent;
public Game.Scenes last;

private bool asked = false;

Konštruktor už klasicky len priradí rodiča triedy.

public SaveSelectScene(Game parent)
{
    Parent = parent;
}

Metóda Update

V triede update sa najprv postaráme o odpoveď na otázku, pričom ak bola kladná, prepneme sa na hernú scénu a nastavíme ju. Pri nastavovaní jej posunieme informáciu o multiplayeri a vybranom slote.

if (asked)
{
    if (Parent.Question.result)
    {
        Parent.currentScene = Game.Scenes.InGame;
        Parent.inGame.MultiPlayer = MP;
        Parent.inGame.ResetScene();
        Parent.inGame.SaveFile = selectedItem + 1;
        selectedItem = 0;
    }
}

V druhej časti našej triedy sa pozrieme na ovládanie posunu medzi položkami, ktoré sa od predošlých menu nezmenilo.

if (Console.KeyAvailable)
{
    ConsoleKey key = Console.ReadKey(true).Key;
    switch (key)
    {
        case ConsoleKey.Escape:
            selectedItem = 0;
            Parent.currentScene = Game.Scenes.MainMenu;
            break;
        case ConsoleKey.UpArrow:
        case ConsoleKey.W: if (selectedItem == 0) selectedItem = 2; else selectedItem--; break;
        case ConsoleKey.DownArrow:
        case ConsoleKey.S: if (selectedItem == 2) selectedItem = 0; else selectedItem++; break;

Tiež sa postaráme o potvrdenie vybranej položky. To bude obsahovať jednoduchú podmienku, ktorá skontroluje, či už save nieje používaný. Ak je, položí otázku, či má byť prepísaný, inak začne hru. Všimnite si, že meníme text správi na „DO YOU WANT TO OVERWRITE SAVE FILE“, čiže „NAOZAJ CHCETE PREPÍSAŤ ULOŽENÚ HRU?“.

case ConsoleKey.Enter:
    if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + selectedItem + 1 + ".xml"))
    {
        asked = true;
        Parent.Question.Text = "DO YOU WANT TO OVERWRITE SAVE FILE?";
        Parent.Question.last = Game.Scenes.SaveGame;
        Parent.currentScene = Game.Scenes.Question;
    }
    else
    {
        Parent.currentScene = Game.Scenes.InGame;
        Parent.inGame.MultiPlayer = MP;
        Parent.inGame.ResetScene();
        Parent.inGame.SaveFile = selectedItem + 1;
    }
    break;
}

Zobraziť celú metódu

public void Update()
{
    if (asked)
    {
        if (Parent.Question.result)
        {
            Parent.currentScene = Game.Scenes.InGame;
            Parent.inGame.MultiPlayer = MP;
            Parent.inGame.ResetScene();
            Parent.inGame.SaveFile = selectedItem + 1;
            selectedItem = 0;
        }
    }
    if (Console.KeyAvailable)
    {
        ConsoleKey key = Console.ReadKey(true).Key;
        switch (key)
        {
            case ConsoleKey.Escape:
                selectedItem = 0;
                Parent.currentScene = Game.Scenes.MainMenu;
                break;
            case ConsoleKey.UpArrow:
            case ConsoleKey.W: if (selectedItem == 0) selectedItem = 2; else selectedItem--; break;
            case ConsoleKey.DownArrow:
            case ConsoleKey.S: if (selectedItem == 2) selectedItem = 0; else selectedItem++; break;
            case ConsoleKey.Enter:
                if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + selectedItem + 1 + ".xml"))
                {
                    asked = true;
                    Parent.Question.Text = "DO YOU WANT TO OVERWRITE SAVE FILE?";
                    Parent.Question.last = Game.Scenes.SaveGame;
                    Parent.currentScene = Game.Scenes.Question;
                }
                else
                {
                    Parent.currentScene = Game.Scenes.InGame;
                    Parent.inGame.MultiPlayer = MP;
                    Parent.inGame.ResetScene();
                    Parent.inGame.SaveFile = selectedItem + 1;
                }
                break;
        }
    }
}

Metóda Draw

Metóda Draw sa nám samozrejme postará o vykreslenie menu. Najprv vykreslí okno skladajúce sa z dvoch obdĺžnikov, pričom tmavožltý znázorňuje okraj. Do jeho hornej časti ešte umiestni nápis „SELECT SAVE“, čiže VYBER POZÍCIU.

Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 26) / 2, (Renderer.WindowSize.Y - 26) / 2, 26, 26), ConsoleColor.DarkYellow);
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2, (Renderer.WindowSize.Y - 24) / 2, 24, 24), ConsoleColor.Yellow);
            
Renderer.DrawString("SELECT SAVE", new Vector2((Renderer.WindowSize.X - "SELECT SAVE".Length) / 2, (Renderer.WindowSize.Y - 26) / 2), ConsoleColor.White);

Po tomto príjde na radu vykreslenie samotných možností. Ja som to spravil tak, že som si vytvoril štyri premenné – jednu pre každý riadok tlačidla. V základe obsahujú nápis označujúci číslo slotu a pod tým rámik z nápisom „FREE“, čiže voľné.

V prípade, že save existuje, tak ho prečítame a zobrazíme o ňom informácie. Toto je vykreslené do modrého štvorca (poprípade zeleného, ak je vybraný).

string SAVE1 = "      SAVE 1";
string SAVE2 = "┌────────────────┐";
string SAVE3 = "│      FREE      │";
string SAVE4 = "└────────────────┘";
if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 1 + ".xml"))
{
    SaveState state = FileController.Load<SaveState>("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 1 + ".xml");
    SAVE2 = "SCORE: " + state.Score;
    SAVE3 = "LEVEL: " + state.Level;
    SAVE4 = "LIVES: " + state.Lives;
}
if (selectedItem == 0)
{
    Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 1, 20, 6), ConsoleColor.Green);
    Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 2), ConsoleColor.Black);
    Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 3), ConsoleColor.Black);
    Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 4), ConsoleColor.Black);
    Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 5), ConsoleColor.Black);
}
else
{
    Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 1, 20, 6), ConsoleColor.Blue);
    Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 2), ConsoleColor.White);
    Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 3), ConsoleColor.White);
    Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 4), ConsoleColor.White);
    Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 5), ConsoleColor.White);
}

Keďže zvyšok metódy opakuje posledný kód, len z inými pozíciami a číslom saveu, tak vám sem už vložím rovno celú metódu.

Zobraziť celú metódu

public void Draw()
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 26) / 2, (Renderer.WindowSize.Y - 26) / 2, 26, 26), ConsoleColor.DarkYellow);
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2, (Renderer.WindowSize.Y - 24) / 2, 24, 24), ConsoleColor.Yellow);
Renderer.DrawString("SELECT SAVE", new Vector2((Renderer.WindowSize.X - "SELECT SAVE".Length) / 2, (Renderer.WindowSize.Y - 26) / 2), ConsoleColor.White);
string SAVE1 = "      SAVE 1";
string SAVE2 = "┌────────────────┐";
string SAVE3 = "│      FREE      │";
string SAVE4 = "└────────────────┘";
if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 1 + ".xml"))
{
SaveState state = FileController.Load<SaveState>("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 1 + ".xml");
SAVE2 = "SCORE: " + state.Score;
SAVE3 = "LEVEL: " + state.Level;
SAVE4 = "LIVES: " + state.Lives;
}
if (selectedItem == 0)
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 1, 20, 6), ConsoleColor.Green);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 2), ConsoleColor.Black);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 3), ConsoleColor.Black);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 4), ConsoleColor.Black);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 5), ConsoleColor.Black);
}
else
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 1, 20, 6), ConsoleColor.Blue);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 2), ConsoleColor.White);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 3), ConsoleColor.White);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 4), ConsoleColor.White);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 5), ConsoleColor.White);
}
SAVE1 = "      SAVE 2";
SAVE2 = "┌────────────────┐";
SAVE3 = "│      FREE      │";
SAVE4 = "└────────────────┘";
if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 2 + ".xml"))
{
SaveState state = FileController.Load<SaveState>("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 2 + ".xml");
SAVE2 = "SCORE: " + state.Score;
SAVE3 = "LEVEL: " + state.Level;
SAVE4 = "LIVES: " + state.Lives;
}
if (selectedItem == 1)
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 8, 20, 6), ConsoleColor.Green);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 9), ConsoleColor.Black);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 10), ConsoleColor.Black);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 11), ConsoleColor.Black);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 12), ConsoleColor.Black);
}
else
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 8, 20, 6), ConsoleColor.Blue);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 9), ConsoleColor.White);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 10), ConsoleColor.White);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 11), ConsoleColor.White);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 12), ConsoleColor.White);
}
SAVE1 = "      SAVE 3";
SAVE2 = "┌────────────────┐";
SAVE3 = "│      FREE      │";
SAVE4 = "└────────────────┘";
if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 3 + ".xml"))
{
SaveState state = FileController.Load<SaveState>("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 3 + ".xml");
SAVE2 = "SCORE: " + state.Score;
SAVE3 = "LEVEL: " + state.Level;
SAVE4 = "LIVES: " + state.Lives;
}
if (selectedItem == 2)
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 15, 20, 6), ConsoleColor.Green);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 16), ConsoleColor.Black);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 17), ConsoleColor.Black);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 18), ConsoleColor.Black);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 19), ConsoleColor.Black);
}
else
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 15, 20, 6), ConsoleColor.Blue);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 16), ConsoleColor.White);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 17), ConsoleColor.White);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 18), ConsoleColor.White);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 19), ConsoleColor.White);
}
}

To je však pre tento diel všetko. Na záver som vám sem vložil obrázok tohto menu a celý kód triedy. Nabudúce sa pozrieme na opačnú obrazovku, a to načítania. Tiež sa pozrieme na triedu SaveState, ktorú sme už viac krát spomínali.

Snake_Save

Zobraziť celú triedu

namespace Snake
{
public class SaveSelectScene
{
public bool MP = false;
private int selectedItem = 0;
private Game Parent;
public Game.Scenes last;
private bool asked = false;
public SaveSelectScene(Game parent)
{
Parent = parent;
}
public void Update()
{
if (asked)
{
if (Parent.Question.result)
{
Parent.currentScene = Game.Scenes.InGame;
Parent.inGame.MultiPlayer = MP;
Parent.inGame.ResetScene();
Parent.inGame.SaveFile = selectedItem + 1;
selectedItem = 0;
}
}
if (Console.KeyAvailable)
{
ConsoleKey key = Console.ReadKey(true).Key;
switch (key)
{
case ConsoleKey.Escape:
selectedItem = 0;
Parent.currentScene = Game.Scenes.MainMenu;
break;
case ConsoleKey.UpArrow:
case ConsoleKey.W: if (selectedItem == 0) selectedItem = 2; else selectedItem--; break;
case ConsoleKey.DownArrow:
case ConsoleKey.S: if (selectedItem == 2) selectedItem = 0; else selectedItem++; break;
case ConsoleKey.Enter:
if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + selectedItem + 1 + ".xml"))
{
asked = true;
Parent.Question.Text = "DO YOU WANT TO OVERWRITE SAVE FILE?";
Parent.Question.last = Game.Scenes.SaveGame;
Parent.currentScene = Game.Scenes.Question;
}
else
{
Parent.currentScene = Game.Scenes.InGame;
Parent.inGame.MultiPlayer = MP;
Parent.inGame.ResetScene();
Parent.inGame.SaveFile = selectedItem + 1;
}
break;
}
}
}
public void Draw()
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 26) / 2, (Renderer.WindowSize.Y - 26) / 2, 26, 26), ConsoleColor.DarkYellow);
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2, (Renderer.WindowSize.Y - 24) / 2, 24, 24), ConsoleColor.Yellow);
Renderer.DrawString("SELECT SAVE", new Vector2((Renderer.WindowSize.X - "SELECT SAVE".Length) / 2, (Renderer.WindowSize.Y - 26) / 2), ConsoleColor.White);
string SAVE1 = "      SAVE 1";
string SAVE2 = "┌────────────────┐";
string SAVE3 = "│      FREE      │";
string SAVE4 = "└────────────────┘";
if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 1 + ".xml"))
{
SaveState state = FileController.Load<SaveState>("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 1 + ".xml");
SAVE2 = "SCORE: " + state.Score;
SAVE3 = "LEVEL: " + state.Level;
SAVE4 = "LIVES: " + state.Lives;
}
if (selectedItem == 0)
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 1, 20, 6), ConsoleColor.Green);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 2), ConsoleColor.Black);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 3), ConsoleColor.Black);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 4), ConsoleColor.Black);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 5), ConsoleColor.Black);
}
else
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 1, 20, 6), ConsoleColor.Blue);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 2), ConsoleColor.White);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 3), ConsoleColor.White);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 4), ConsoleColor.White);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 5), ConsoleColor.White);
}
SAVE1 = "      SAVE 2";
SAVE2 = "┌────────────────┐";
SAVE3 = "│      FREE      │";
SAVE4 = "└────────────────┘";
if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 2 + ".xml"))
{
SaveState state = FileController.Load<SaveState>("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 2 + ".xml");
SAVE2 = "SCORE: " + state.Score;
SAVE3 = "LEVEL: " + state.Level;
SAVE4 = "LIVES: " + state.Lives;
}
if (selectedItem == 1)
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 8, 20, 6), ConsoleColor.Green);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 9), ConsoleColor.Black);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 10), ConsoleColor.Black);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 11), ConsoleColor.Black);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 12), ConsoleColor.Black);
}
else
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 8, 20, 6), ConsoleColor.Blue);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 9), ConsoleColor.White);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 10), ConsoleColor.White);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 11), ConsoleColor.White);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 12), ConsoleColor.White);
}
SAVE1 = "      SAVE 3";
SAVE2 = "┌────────────────┐";
SAVE3 = "│      FREE      │";
SAVE4 = "└────────────────┘";
if (FileController.Exist("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 3 + ".xml"))
{
SaveState state = FileController.Load<SaveState>("Saves\\Save_" + ((!MP) ? "SP_" : "MP_") + 3 + ".xml");
SAVE2 = "SCORE: " + state.Score;
SAVE3 = "LEVEL: " + state.Level;
SAVE4 = "LIVES: " + state.Lives;
}
if (selectedItem == 2)
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 15, 20, 6), ConsoleColor.Green);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 16), ConsoleColor.Black);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 17), ConsoleColor.Black);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 18), ConsoleColor.Black);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 19), ConsoleColor.Black);
}
else
{
Renderer.DrawRectangle(new Rectangle((Renderer.WindowSize.X - 24) / 2 + 2, (Renderer.WindowSize.Y - 24) / 2 + 15, 20, 6), ConsoleColor.Blue);
Renderer.DrawString(SAVE1, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 16), ConsoleColor.White);
Renderer.DrawString(SAVE2, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 17), ConsoleColor.White);
Renderer.DrawString(SAVE3, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 18), ConsoleColor.White);
Renderer.DrawString(SAVE4, new Vector2((Renderer.WindowSize.X - 24) / 2 + 3, (Renderer.WindowSize.Y - 24) / 2 + 19), ConsoleColor.White);
}
}
}
}

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Scroll to Top