Jump to content

  • Log In with Google      Sign In   
  • Create Account


#Actualthefollower

Posted 06 November 2012 - 05:24 PM

Hey

I'm having an issue trying to get my button to change image when the mouse is hovering over it, i don't know where I am going wrong was hoping some could help.

The button does display, but does not change when the mouse is over it.


My class is like this:

For some reason, i cannot get the code to display properly... can a mod please check if this is a bug.

[source lang="cpp"]#include <SFML/Graphics.hpp>#include <string>class Button { private: int m_x, m_y; int m_w, m_h; public: Button(int x, int y) { m_x = x; m_y = y; } bool IsIn( int mouseX, int mouseY ) { if (((mouseX > m_x) &amp;amp;&amp;amp; (mouseX < m_x + m_w)) &amp;amp;&amp;amp; ((mouseY > m_y) &amp;amp;&amp;amp; (mouseY < m_y + m_h ) ) ) { return true; } else { return false; } } void RenderBttn(sf::RenderWindow &amp;amp;destination,int mouseX, int mouseY) { std::string img = "button.png"; sf::Texture button; if (!button.loadFromFile(img)){ exit(4); } std::string img_on = "button_on.png"; sf::Texture button_on; if (!button.loadFromFile(img_on)){ exit(5); } sf::Sprite sprite(button); m_w = sprite.getLocalBounds().width; m_h = sprite.getLocalBounds().height; if(IsIn(mouseX,mouseY)){ sf::Sprite sprite(button_on); } else { sf::Sprite sprite(button); } sprite.setPosition(m_x,m_y); destination.draw(sprite); }};[/source]

I should note im not sure if my approach is the best way ??



My main loop has:

[source lang="cpp"]Button btn_quit(window.getSize().y/2, 200); // Start the loop while (window.isOpen()) { // Process events sf::Event event; while (window.pollEvent(event)) { // Close window : exit if (event.type == sf::Event::Closed) { window.close(); } } // Clear screen window.clear(); // Draw the background sprites window.draw(sprite); window.draw(lsprite); //render the button also check the mouse position btn_quit.RenderBttn(window,event.mouseMove.x,event.mouseMove.y); // Update the window window.display(); }[/source]

Hope you can help Posted Image

#10thefollower

Posted 06 November 2012 - 05:23 PM

Hey

I'm having an issue trying to get my button to change image when the mouse is hovering over it, i don't know where I am going wrong was hoping some could help.

The button does display, but does not change when the mouse is over it.


My class is like this:



[source lang="cpp"]#include <SFML/Graphics.hpp>#include <string>class Button { private: int m_x, m_y; int m_w, m_h; public: Button(int x, int y) { m_x = x; m_y = y; } bool IsIn( int mouseX, int mouseY ) { if (((mouseX > m_x) &amp;amp;&amp;amp; (mouseX < m_x + m_w)) &amp;amp;&amp;amp; ((mouseY > m_y) &amp;amp;&amp;amp; (mouseY < m_y + m_h ) ) ) { return true; } else { return false; } } void RenderBttn(sf::RenderWindow &amp;amp;destination,int mouseX, int mouseY) { std::string img = "button.png"; sf::Texture button; if (!button.loadFromFile(img)){ exit(4); } std::string img_on = "button_on.png"; sf::Texture button_on; if (!button.loadFromFile(img_on)){ exit(5); } sf::Sprite sprite(button); m_w = sprite.getLocalBounds().width; m_h = sprite.getLocalBounds().height; if(IsIn(mouseX,mouseY)){ sf::Sprite sprite(button_on); } else { sf::Sprite sprite(button); } sprite.setPosition(m_x,m_y); destination.draw(sprite); }};[/source]

I should note im not sure if my approach is the best way ??



My main loop has:

[source lang="cpp"]Button btn_quit(window.getSize().y/2, 200); // Start the loop while (window.isOpen()) { // Process events sf::Event event; while (window.pollEvent(event)) { // Close window : exit if (event.type == sf::Event::Closed) { window.close(); } } // Clear screen window.clear(); // Draw the background sprites window.draw(sprite); window.draw(lsprite); //render the button also check the mouse position btn_quit.RenderBttn(window,event.mouseMove.x,event.mouseMove.y); // Update the window window.display(); }[/source]

Hope you can help Posted Image

#9thefollower

Posted 06 November 2012 - 05:23 PM

Hey

I'm having an issue trying to get my button to change image when the mouse is hovering over it, i don't know where I am going wrong was hoping some could help.

The button does display, but does not change when the mouse is over it.


My class is like this:



[source lang="cpp"]#include <SFML/Graphics.hpp>#include <string>class Button { private: int m_x, m_y; int m_w, m_h; public: Button(int x, int y) { m_x = x; m_y = y; } bool IsIn( int mouseX, int mouseY ) { if (((mouseX > m_x) &amp;amp;&amp;amp; (mouseX < m_x + m_w)) &amp;amp;&amp;amp; ((mouseY > m_y) &amp;amp;&amp;amp; (mouseY < m_y + m_h ) ) ) { return true; } else { return false; } } void RenderBttn(sf::RenderWindow &amp;amp;destination,int mouseX, int mouseY) { std::string img = "button.png"; sf::Texture button; if (!button.loadFromFile(img)){ exit(4); } std::string img_on = "button_on.png"; sf::Texture button_on; if (!button.loadFromFile(img_on)){ exit(5); } sf::Sprite sprite(button); m_w = sprite.getLocalBounds().width; m_h = sprite.getLocalBounds().height; if(IsIn(mouseX,mouseY)){ sf::Sprite sprite(button_on); } else { sf::Sprite sprite(button); } sprite.setPosition(m_x,m_y); destination.draw(sprite); }};[/source]

I should note im not sure if my approach is the best way ??



My main loop has:

[source lang="cpp"]Button btn_quit(window.getSize().y/2, 200); // Start the loop while (window.isOpen()) { // Process events sf::Event event; while (window.pollEvent(event)) { // Close window : exit if (event.type == sf::Event::Closed) { window.close(); } } // Clear screen window.clear(); // Draw the background sprites window.draw(sprite); window.draw(lsprite); //render the button also check the mouse position btn_quit.RenderBttn(window,event.mouseMove.x,event.mouseMove.y); // Update the window window.display(); }[/source]

Hope you can help Posted Image

#8thefollower

Posted 06 November 2012 - 05:22 PM

Hey

I'm having an issue trying to get my button to change image when the mouse is hovering over it, i don't know where I am going wrong was hoping some could help.

The button does display, but does not change when the mouse is over it.


My class is like this:



[source lang="cpp"]#include <SFML/Graphics.hpp>#include <string>class Button { private: int m_x, m_y; //position x and y for offset int m_w, m_h; //width and height public: Button(int x, int y) { m_x = x; m_y = y; } bool IsIn( int mouseX, int mouseY ) { if (((mouseX > m_x) &amp;&amp; (mouseX < m_x + m_w)) &amp;&amp; ((mouseY > m_y) &amp;&amp; (mouseY < m_y + m_h ) ) ) { return true; } else { return false; } } void RenderBttn(sf::RenderWindow &amp;destination,int mouseX, int mouseY) { std::string img = "button.png"; sf::Texture button; if (!button.loadFromFile(img)){ exit(4); } std::string img_on = "button_on.png"; sf::Texture button_on; if (!button.loadFromFile(img_on)){ exit(5); } sf::Sprite sprite(button); m_w = sprite.getLocalBounds().width; m_h = sprite.getLocalBounds().height; if(IsIn(mouseX,mouseY)){ sf::Sprite sprite(button_on); } else { sf::Sprite sprite(button); } sprite.setPosition(m_x,m_y); destination.draw(sprite); }};[/source]

I should note im not sure if my approach is the best way ??



My main loop has:

[source lang="cpp"]Button btn_quit(window.getSize().y/2, 200); // Start the loop while (window.isOpen()) { // Process events sf::Event event; while (window.pollEvent(event)) { // Close window : exit if (event.type == sf::Event::Closed) { window.close(); } } // Clear screen window.clear(); // Draw the background sprites window.draw(sprite); window.draw(lsprite); //render the button also check the mouse position btn_quit.RenderBttn(window,event.mouseMove.x,event.mouseMove.y); // Update the window window.display(); }[/source]

Hope you can help Posted Image

#7thefollower

Posted 06 November 2012 - 05:21 PM

Hey

I'm having an issue trying to get my button to change image when the mouse is hovering over it, i don't know where I am going wrong was hoping some could help.

The button does display, but does not change when the mouse is over it.


My class is like this:



[source lang="cpp"]#include <SFML/Graphics.hpp>#include <string>class Button { private: int m_x, m_y; //position x and y for offset int m_w, m_h; //width and height public: Button(int x, int y) { m_x = x; m_y = y; } bool IsIn( int mouseX, int mouseY ) { if (((mouseX > m_x) &amp;&amp; (mouseX < m_x + m_w)) &amp;&amp; ((mouseY > m_y) &amp;&amp; (mouseY < m_y + m_h ) ) ) { return true; } else { return false; } } void RenderBttn(sf::RenderWindow &amp;destination,int mouseX, int mouseY) { std::string img = "button.png"; sf::Texture button; if (!button.loadFromFile(img)){ exit(4); } std::string img_on = "button_on.png"; sf::Texture button_on; if (!button.loadFromFile(img_on)){ exit(5); } sf::Sprite sprite(button); m_w = sprite.getLocalBounds().width; m_h = sprite.getLocalBounds().height; if(IsIn(mouseX,mouseY)){ sf::Sprite sprite(button_on); } else { sf::Sprite sprite(button); } sprite.setPosition(m_x,m_y); destination.draw(sprite); }};[/source]

I should note im not sure if my approach is the best way ??



My main loop has:

[source lang="cpp"]Button btn_quit(window.getSize().y/2, 200); // Start the loop while (window.isOpen()) { // Process events sf::Event event; while (window.pollEvent(event)) { // Close window : exit if (event.type == sf::Event::Closed) { window.close(); } } // Clear screen window.clear(); // Draw the background sprites window.draw(sprite); window.draw(lsprite); //render the button also check the mouse position btn_quit.RenderBttn(window,event.mouseMove.x,event.mouseMove.y); // Update the window window.display(); } [/source]

Hope you can help Posted Image

#6thefollower

Posted 06 November 2012 - 05:21 PM

Hey

I'm having an issue trying to get my button to change image when the mouse is hovering over it, i don't know where I am going wrong was hoping some could help.

The button does display, but does not change when the mouse is over it.


My class is like this:



[source lang="cpp"]#include <SFML/Graphics.hpp>#include <string>class Button { private: int m_x, m_y; //position x and y for offset int m_w, m_h; //width and height public: Button(int x, int y) { m_x = x; m_y = y; } bool IsIn( int mouseX, int mouseY ) { if (((mouseX > m_x) &amp;&amp; (mouseX < m_x + m_w)) &amp;&amp; ((mouseY > m_y) &amp;&amp; (mouseY < m_y + m_h ) ) ) { return true; } else { return false; } } void RenderBttn(sf::RenderWindow &amp;destination,int mouseX, int mouseY) { std::string img = "button.png"; sf::Texture button; if (!button.loadFromFile(img)){ exit(4); } std::string img_on = "button_on.png"; sf::Texture button_on; if (!button.loadFromFile(img_on)){ exit(5); } sf::Sprite sprite(button); m_w = sprite.getLocalBounds().width; m_h = sprite.getLocalBounds().height; if(IsIn(mouseX,mouseY)){ sf::Sprite sprite(button_on); } else { sf::Sprite sprite(button); } sprite.setPosition(m_x,m_y); destination.draw(sprite); }};[/source]

I should note im not sure if my approach is the best way ??



My main loop has:

[source lang="cpp"]Button btn_quit(window.getSize().y/2, 200); // Start the loop while (window.isOpen()) { // Process events sf::Event event; while (window.pollEvent(event)) { // Close window : exit if (event.type == sf::Event::Closed) { window.close(); } } // Clear screen window.clear(); // Draw the background sprites window.draw(sprite); window.draw(lsprite); //render the button also check the mouse position btn_quit.RenderBttn(window,event.mouseMove.x,event.mouseMove.y); // Update the window window.display(); } [/source]

Hope you can help Posted Image

PARTNERS