diff --git a/Resources/halo.frag b/Resources/halo.frag new file mode 100644 index 0000000..3d1615c --- /dev/null +++ b/Resources/halo.frag @@ -0,0 +1,12 @@ +uniform float time; +uniform bool blue; +uniform sampler2D texture; + +void main(void) { + float transpa = max (sin(time*5.)*100., 50.); + vec4 color = vec4 (246.,111.,231.,transpa)/255.; + if (blue) color = vec4(0.,153.,253.,transpa)/255.; + vec4 pixel = texture2D(texture, gl_TexCoord[0].xy); + + gl_FragColor = pixel * color; +} \ No newline at end of file diff --git a/Resources/shaderHalo.frag b/Resources/shaderHalo.frag index d570064..f276867 100644 --- a/Resources/shaderHalo.frag +++ b/Resources/shaderHalo.frag @@ -1,9 +1,9 @@ -uniform float time; +// uniform float time2; uniform bool blue; void main(void) { - float transpa = sin(time)*255.; - vec4 color = (246,111,231, (transpa)); - if (blue) color = (0,153,253, (transpa)); +// float transpa = sin(time2)*255.; + vec4 color = (246,111,231, 255); + if (blue) color = (0,153,253, 255); gl_FragColor = color; } \ No newline at end of file diff --git a/VaporWaveWars/character.hpp b/VaporWaveWars/character.hpp index e0e4065..9e78419 100644 --- a/VaporWaveWars/character.hpp +++ b/VaporWaveWars/character.hpp @@ -9,9 +9,9 @@ private: const int numFrames = 4; const std::string spriteFile = WORK_DIR+"Resources/spreadsheet.png"; //POSICIO PLAYER 1 - float posX1 = W_WIDTH*0.05f, posY1 = W_HEIGHT*0.6f; + float posX1 = W_WIDTH*0.05f, posY1 = W_HEIGHT*0.5f; //POSICIO PLAYER 2 - float posX2 = W_WIDTH*0.65f, posY2 = W_HEIGHT*0.6f; + float posX2 = W_WIDTH*0.65f, posY2 = W_HEIGHT*0.5f; //END CONFIG int magicNumber; diff --git a/VaporWaveWars/combat.cpp b/VaporWaveWars/combat.cpp index 74631bc..1ed76c9 100644 --- a/VaporWaveWars/combat.cpp +++ b/VaporWaveWars/combat.cpp @@ -30,17 +30,23 @@ void Combat::initShader() { _background.setTexture(_text); _shader.loadFromFile(WORK_DIR+"Resources/shader.frag", sf::Shader::Fragment); _shader.setParameter("resolution", sf::Vector2f(W_WIDTH, W_HEIGHT)); + _shader.setParameter("time", time); + + ASSERT(_haloT.loadFromFile(WORK_DIR+"Resources/platform-halo.png")); + _halo.setTexture(_haloT); + _halo.setPosition(W_WIDTH*0.05f, W_HEIGHT*0.5f); + _shaderHalo.loadFromFile(WORK_DIR+"Resources/halo.frag", sf::Shader::Fragment); + _shaderHalo.setParameter("blue", attacking); + _shaderHalo.setParameter("time", time); - _shaderHalo.loadFromFile(WORK_DIR+"Resources/shaderHalo.frag", sf::Shader::Fragment); - _shaderHalo.setParameter("blue", false); } void Combat::update(float deltaTime, sf::RenderWindow *window) { player->update(deltaTime, window); bool aux = enemy->update(deltaTime, window); if (ia) enemyManager(aux); //end of player two ia rythm - time += deltaTime; + time += deltaTime; _shader.setParameter("time", time); _shaderHalo.setParameter("time", time); } @@ -49,12 +55,14 @@ void Combat::draw(sf::RenderWindow *window) { window->draw(_background, &_shader); player->draw(window); enemy->draw(window); + window->draw(_halo, &_shaderHalo); scorePlayer->draw(window); scoreEnemy->draw(window); } void Combat::updateEvents(sf::Event e) { if (playerOneTurn) { + _halo.setPosition(W_WIDTH*0.05f, W_HEIGHT*0.5f); bool aux = player->event(e, !attacking); if (!aux) { //end of player one ritm @@ -65,9 +73,11 @@ void Combat::updateEvents(sf::Event e) { } else playerOneTurn = aux; attacking = !attacking; + _shaderHalo.setParameter("blue", attacking); } } else if (!ia) { + _halo.setPosition(W_WIDTH*0.65f, W_HEIGHT*0.5f); bool aux = !enemy->event(e, !attacking); enemyManager(aux); //end of player two not ia ritm } @@ -82,5 +92,6 @@ void Combat::enemyManager(bool aux) { } else playerOneTurn = aux; attacking = !attacking; + _shaderHalo.setParameter("blue", attacking); } } diff --git a/VaporWaveWars/combat.hpp b/VaporWaveWars/combat.hpp index 561ab43..6439cfe 100644 --- a/VaporWaveWars/combat.hpp +++ b/VaporWaveWars/combat.hpp @@ -23,14 +23,12 @@ public: void updateEvents(sf::Event e) final override; private: bool playerOneTurn, ia, attacking; - Actor *player; - Actor *enemy; + Actor *player, *enemy; float time; - sf::Texture _text; - sf::Sprite _background; - sf::Shader _shader; - sf::Shader _shaderHalo; + sf::Texture _text, _haloT, _plataformT; + sf::Sprite _background, _halo, _plataform; + sf::Shader _shader, _shaderHalo; Score *scoreEnemy, *scorePlayer; void initShader();