/******************************************************************* ** This code is part of Breakout. ** ** Breakout is free software: you can redistribute it and/or modify ** it under the terms of the CC BY 4.0 license as published by ** Creative Commons, either version 4 of the License, or (at your ** option) any later version. ******************************************************************/ #ifndef GAME_H #define GAME_H #include #include // Represents the current state of the game enum GameState { GAME_ACTIVE, GAME_MENU, GAME_WIN }; // Initial size of the player paddle const glm::vec2 PLAYER_SIZE(100.0f, 20.0f); // Initial velocity of the player paddle const float PLAYER_VELOCITY(500.0f); // Game holds all game-related state and functionality. // Combines all game-related data into a single class for // easy access to each of the components and manageability. class Game { public: // game state GameState State; bool Keys[1024]; bool KeysProcessed[1024]; unsigned int Width, Height; // constructor/destructor Game(unsigned int width, unsigned int height); ~Game(); // initialize game state (load all shaders/textures/levels) void Init(); // game loop void ProcessInput(float dt); void Update(float dt); void Render(); }; #endif