diff --git a/VaporWaveWars/combat.cpp b/VaporWaveWars/combat.cpp index 5fa40a8..71ed72b 100644 --- a/VaporWaveWars/combat.cpp +++ b/VaporWaveWars/combat.cpp @@ -3,7 +3,7 @@ Combat::Combat() { ia = playerOneTurn = true; enemy = new IaEnemy(); - + initShader(); } Combat::Combat(bool ia) { @@ -11,17 +11,26 @@ Combat::Combat(bool ia) { playerOneTurn = true; if (ia) enemy = new IaEnemy(); else enemy = new Player(); + initShader(); +} + +void Combat::initShader() { + _text.create(W_WIDTH, W_HEIGHT); + _background.setTexture(_text); + _shader.loadFromFile("./resources/shader.frag", sf::Shader::Fragment); + _shader.setParameter("resolution", sf::Vector2f(W_WIDTH, W_HEIGHT)); } void Combat::update(float deltaTime, sf::RenderWindow *window) { if (playerOneTurn) player.update(deltaTime, window); else if (ia) playerOneTurn = enemy->update(deltaTime, window); + _shader.setParameter("time", deltaTime); } void Combat::draw(sf::RenderWindow *window) { player.draw(window); enemy->draw(window); - + window->draw(_background, &_shader); } void Combat::updateEvents(sf::Event e) { diff --git a/VaporWaveWars/combat.hpp b/VaporWaveWars/combat.hpp index 88298ae..fd0a6a6 100644 --- a/VaporWaveWars/combat.hpp +++ b/VaporWaveWars/combat.hpp @@ -23,8 +23,11 @@ private: bool playerOneTurn, ia; Player player; Actor *enemy; + sf::Texture _text; sf::Sprite _background; - static sf::Shader _shader; + sf::Shader _shader; + + void initShader(); }; diff --git a/VaporWaveWars/commons.hpp b/VaporWaveWars/commons.hpp index 9e82ae6..90c1977 100644 --- a/VaporWaveWars/commons.hpp +++ b/VaporWaveWars/commons.hpp @@ -12,6 +12,8 @@ const int SCENE_NUM = 4; #define MARGEERR 0.30f #define BLACKVALUE 0.00025f +#define W_WIDTH 800 +#define W_HEIGHT 600 #define ASSERT(expression) do \ { \ diff --git a/VaporWaveWars/game.cpp b/VaporWaveWars/game.cpp index 075c49e..3cfb4e8 100644 --- a/VaporWaveWars/game.cpp +++ b/VaporWaveWars/game.cpp @@ -20,7 +20,7 @@ Game* Game::i() { // Main game loop void Game::run() { sf::Clock c; - sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window"); + sf::RenderWindow window(sf::VideoMode(W_WIDTH, W_HEIGHT), "SFML window"); float oldTime = c.getElapsedTime().asSeconds(); while (isRunning) { float time = c.getElapsedTime().asSeconds();