Space Fighter
A "shmup" game for Computer Programming C++
Loading...
Searching...
No Matches
ScreenManager.h
Go to the documentation of this file.
1
2/*
3 ██╗ ██╗ █████╗ ████████╗ █████╗ ███╗ ██╗ █████╗
4 ██║ ██╔╝ ██╔══██╗ ╚══██╔══╝ ██╔══██╗ ████╗ ██║ ██╔══██╗
5 █████╔╝ ███████║ ██║ ███████║ ██╔██╗ ██║ ███████║
6 ██╔═██╗ ██╔══██║ ██║ ██╔══██║ ██║╚██╗██║ ██╔══██║
7 ██║ ██╗ ██║ ██║ ██║ ██║ ██║ ██║ ╚████║ ██║ ██║
8 ╚═╝ ╚═╝ ╚═╝ ╚═╝/\ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝
9 /vvvvvvvvvvvvvvvvvvv \=========================================,
10 `^^^^^^^^^^^^^^^^^^^ /---------------------------------------"
11 Katana Engine \/ © 2012 - Shuriken Studios LLC
12 http://www.shurikenstudios.com
13*/
14
15#pragma once
16
17namespace KatanaEngine
18{
19 class Game;
20
23 {
24 friend class Game;
25
26 public:
27
30 ScreenManager(Game *pGame);
31 virtual ~ScreenManager() { }
32
35 Game *GetGame() const { return m_pGame; }
36
40
43 virtual void AddScreen(Screen *pScreen);
44
47 virtual void Update(const GameTime& gameTime);
48
51 virtual void Draw(SpriteBatch& spriteBatch);
52
53
54 private:
55
56 Game *m_pGame;
57
58 std::vector<Screen *> m_screens;
59 std::vector<Screen *> m_screensToAdd;
60 std::vector<Screen *> m_screensToRemove;
61 std::vector<Screen *> m_screensToDraw;
62
63 std::vector<Screen *>::iterator m_it;
64 std::vector<Screen *>::reverse_iterator m_rit;
65
66 virtual void HandleInput(const InputState& input);
67 };
68}
Base class for all games. Provides graphics initialization, game loop, and rendering code....
Definition Game.h:22
Contains timing values for game updates and rendering.
Definition GameTime.h:21
Handles the state of multiple player input devices.
Definition InputState.h:22
Loads and manages the lifespan of objects from external files.
Base class for all game screens and menus.
Definition Screen.h:40
Updates, renders, and manages transitions between instances of the Screen class.
Game * GetGame() const
Gets a pointer to the Game.
ResourceManager * GetResourceManager() const
Gets a pointer to the ResourceManager, for loading and managing resources.
virtual void AddScreen(Screen *pScreen)
Add a screen to be managed.
virtual void Update(const GameTime &gameTime)
Called when the game has determined that screen logic needs to be processed.
virtual void Draw(SpriteBatch &spriteBatch)
Called when the game determines it is time to draw a frame.
ScreenManager(Game *pGame)
Instantiate a screen manager object.
Enables a group of sprites to be drawn using the same settings.
Definition SpriteBatch.h:48
Katana Engine is a library of classes, interfaces, and value types that provides a foundation for dev...
Definition Animation.cpp:18