Beispiel #1
0
        /// <summary>
        /// Handles the drawing part of the scene
        /// </summary>
        /// <param name="game">Game manager</param>
        public void Draw(Game game)
        {
            // Game is a generic class, so make sure to convert it to ConsoleGame
            ConsoleGame consoleGame = (ConsoleGame)game;
            // ConsoleGame has a screen to draw whereas Game doesn't
            ConsoleScreen consoleScreen = consoleGame.Screen;

            // Clears the whole screen
            consoleScreen.Clear();

            // Draws STATUS on the top of the screen
            consoleScreen.DrawText(2, 2, "STATUS");

            // Then draws each status and their bars on the bottom of each
            consoleScreen.DrawText(2, 4, "Hunger");
            MakeBar(consoleScreen, 2, 5, GameGlobals.Pet.Hunger, true);

            consoleScreen.DrawText(2, 7, "Energy");
            MakeBar(consoleScreen, 2, 8, GameGlobals.Pet.Energy, false);

            consoleScreen.DrawText(2, 10, "Fat");
            MakeBar(consoleScreen, 2, 11, GameGlobals.Pet.Fat, true);

            consoleScreen.DrawText(2, 13, "Happiness");
            MakeBar(consoleScreen, 2, 14, GameGlobals.Pet.Happiness, false);

            // When we're done drawing everything we needed, updates the screen
            consoleScreen.Show();
        }
Beispiel #2
0
 public static void Main(string[] args)
 {
     // Make a game instance of 32x16 blocks resolution and goes to the title scene
     using (ConsoleGame game = new ConsoleGame(32, 16, new SceneTitle()))
         // Starts the game loop
         game.Run();
 }
Beispiel #3
0
 public static void Main(string[] args)
 {
     // Make a game instance of 32x16 blocks resolution and goes to the title scene
     using (ConsoleGame game = new ConsoleGame(32, 16, new SceneTitle()))
         // Starts the game loop
         game.Run();
 }
        /// <summary>
        /// Handles the drawing part of the scene
        /// </summary>
        /// <param name="game">Game manager</param>
        public void Draw(Game game)
        {
            // Game is a generic class, so make sure to convert it to ConsoleGame
            ConsoleGame consoleGame = (ConsoleGame)game;
            // ConsoleGame has a screen to draw whereas Game doesn't
            ConsoleScreen consoleScreen = consoleGame.Screen;

            // Clears the whole screen
            consoleScreen.Clear();

            // Draws "Please enter your pet's name"
            consoleScreen.DrawText(8, 6, "Please enter your\n   pet's name:");
            // Centers and draw the the current pet's name
            consoleScreen.DrawText((32 - _Name.Length) / 2, 8, _Name);

            // When we're done drawing everything we needed, updates the screen
            consoleScreen.Show();
        }
        /// <summary>
        /// Handles the drawing part of the scene
        /// </summary>
        /// <param name="game">Game manager</param>
        public void Draw(Game game)
        {
            // Game is a generic class, so make sure to convert it to ConsoleGame
            ConsoleGame consoleGame = (ConsoleGame)game;
            // ConsoleGame has a screen to draw whereas Game doesn't
            ConsoleScreen consoleScreen = consoleGame.Screen;

            // Saves the animation value for later use
            float animationValue = _Animation.Value;

            // Clears the whole screen
            consoleScreen.Clear();

            // Checks what step we are to draw the right thing
            switch (_Step)
            {
            // This step is the one that the ASCII text art goes from right to left
            case 0:
                // It draws the art on the screen
                // The X offset is the animation value because only that axis is the one that's going to move
                // The Y offset (3) is constant
                // This animation value in this case goes from 32 to -360
                consoleScreen.DrawText((int)Math.Round(animationValue), 3, _TitleArt);
                break;

            // This step happens when the text is fading in
            case 1:
            // This step happens when the text is fading out
            case 3:
                // The fade animation is actually a little trick
                ConsoleColor titleColor;

                // The animation value in this part goes from 0 to 1 or 1 to 0
                // So we check the value to use an appropriate color
                if (animationValue < 0.25f)
                {
                    // If the value is too low, we set the text color to black
                    titleColor = ConsoleColor.Black;
                }
                // If it's reaching the middle of the animation
                else if (animationValue < 0.5f)
                {
                    // Sets it to dark gray
                    titleColor = ConsoleColor.DarkGray;
                }
                // If it's almost done
                else if (animationValue < 0.75f)
                {
                    // Sets it to gray
                    titleColor = ConsoleColor.Gray;
                }
                // When it's really almost there
                else
                {
                    // Just set it to white
                    titleColor = ConsoleColor.White;
                }

                // The standard draw text function uses black background and white foreground by default
                // So if the fourth argument is given, you can make something different happen
                consoleScreen.DrawText(7, 4, "Tamagottagettemall\n  by Bruno Tamer", (x, y, i, block, a, b, c, chr) =>
                {
                    // On this case, we use the color that we 'calculated' before
                    return(new ConsoleBlock(ConsoleColor.Black, titleColor, chr));
                });

                break;

            // If it's on the "PRESS START" part
            default:
                // Draws the fully opaque title
                consoleScreen.DrawText(7, 4, "Tamagottagettemall\n  by Bruno Tamer");

                // The animation value in this case means wether the press start is visible or not
                // If it is
                if (animationValue == 1.0f)
                {
                    // Then just draw it
                    consoleScreen.DrawText(11, 12, "PRESS START");
                }

                break;
            }

            // When we're done drawing everything we needed, updates the screen
            consoleScreen.Show();
        }
Beispiel #6
0
        /// <summary>
        /// Handles the drawing part of the scene
        /// </summary>
        /// <param name="game">Game manager</param>
        public void Draw(Game game)
        {
            // Game is a generic class, so make sure to convert it to ConsoleGame
            ConsoleGame consoleGame = (ConsoleGame)game;
            // ConsoleGame has a screen to draw whereas Game doesn't
            ConsoleScreen consoleScreen = consoleGame.Screen;

            // Saves the animation value for later use
            float animationValue = _Animation.Value;

            // Clears the whole screen
            consoleScreen.Clear();

            // Checks at what scene step it is
            switch (_Step)
            {
            // This is the part where the current day is displayed
            case 0:
                // Builds the day string
                // It's GameGlobals.Days + 1 because that variable starts at 0
                string       dayText = string.Format("Day {0}", GameGlobals.Days + 1);
                ConsoleColor dayTextColor;

                // Gets the right color for the fade animation
                if (animationValue < 0.25f)
                {
                    dayTextColor = ConsoleColor.Black;
                }
                else if (animationValue < 0.5f)
                {
                    dayTextColor = ConsoleColor.DarkGray;
                }
                else if (animationValue < 0.75f)
                {
                    dayTextColor = ConsoleColor.Gray;
                }
                else
                {
                    dayTextColor = ConsoleColor.White;
                }

                // Centers and draws the text on the screen
                consoleScreen.DrawText((32 - dayText.Length) / 2, 8, dayText, (x, y, i, block, a, b, c, chr) =>
                {
                    return(new ConsoleBlock(ConsoleColor.Black, dayTextColor, chr));
                });
                break;

            // This is the part where you select an action
            case 1:
                // Draws the pet art on the screen
                consoleScreen.DrawText(1, 1, _PetArt);
                // Draws "Please select an action" and the amount of actions you have left
                consoleScreen.DrawText(5, 10, string.Format("Please select an action\nYou have {0} actions left", _ActionsLeft));
                // Draws the action box
                consoleScreen.DrawText(5, 12, _ActionsBox);
                // Draws the current selected action
                // Animation value in this case points to the string index of the selected action
                consoleScreen.DrawText(8, 13, Utils.StringRoulette(_ActionsString, 16, (int)Math.Round(animationValue * 10)));
                break;

            // This is the part where you see the pet feedback
            case 2:
            // This is the part where it's moving to the report scene
            case 3:
            // This is the part where it's moving to the gameover scene
            case 4:

                ConsoleColor textColor;
                Func <int, int, int, ConsoleBlock, int, int, int, char, ConsoleBlock> func = null;

                // If it is on the the feedback step
                if (_Step == 2)
                {
                    // Then just uses white for the texts
                    textColor = ConsoleColor.White;
                }
                else
                {
                    // If it's on any other step, it means that it's fading out
                    // Then we have to get the appropriate color for the texts
                    if (animationValue < 0.25f)
                    {
                        textColor = ConsoleColor.Black;
                    }
                    else if (animationValue < 0.5f)
                    {
                        textColor = ConsoleColor.DarkGray;
                    }
                    else if (animationValue < 0.75f)
                    {
                        textColor = ConsoleColor.Gray;
                    }
                    else
                    {
                        textColor = ConsoleColor.White;
                    }

                    // We have to prepare a function to color the texts to later user
                    func = (x, y, i, block, a, b, c, chr) =>
                    {
                        return(new ConsoleBlock(ConsoleColor.Black, textColor, chr));
                    };
                }

                // Draws the pet art on the screen
                consoleScreen.DrawText(1, 1, _PetArt, func);

                // Gets the pet name and status
                string petName   = GameGlobals.Pet.Name;
                string petStatus = GameGlobals.Pet.Status;

                // And their length
                int petNameLength   = petName.Length;
                int petStatusLength = petStatus.Length;

                // And adjust them on the screen in order to center both
                if (petNameLength > petStatusLength)
                {
                    consoleScreen.DrawText(
                        (32 - petNameLength) / 2,
                        9,
                        petName + "\n" + Utils.StringPadBoth(petStatus, petNameLength),
                        func
                        );
                }
                else
                {
                    consoleScreen.DrawText(
                        (32 - petStatusLength) / 2,
                        9,
                        Utils.StringPadBoth(petName, petStatusLength) + "\n" + petStatus,
                        func
                        );
                }

                // If it's on the feedback part, tells the player that they can proceed to select another action
                if (_Step == 2)
                {
                    consoleScreen.DrawText(10, 14, "PRESS ANY KEY");
                }

                break;
            }

            // When we're done drawing everything we needed, updates the screen
            consoleScreen.Show();
        }