The mouse event that checks if my mouse is on my button takes to long to react. The average time it takes to react is about 4 to 5 seconds. That's insane, am I doing something wrong?
#include "MainMenuState.h"
#include "State.h"
#include "SEngine.h"
#include <SFML/Graphics.hpp>
MainMenuState MainMenuState::mainMenuStart; // static MainMenuState variable
/* Load() method for MainMenuState, initializes all variables in MainMenuState.
*/
void MainMenuState::Load(){
backGround = sf::RectangleShape(sf::Vector2f(640.0f,480.0f));
menu = backGround.getLocalBounds();
backGround.setOrigin(menu.left,menu.top);
playText.loadFromFile("Resources\\images\\Play_Button_Sheet.png");
playButton.setSize(sf::Vector2f(350.0f, 50.0f));
playButton.setTexture(&playText);
playButton.setTextureRect(sf::IntRect(0,0,350,50));
playButton.setPosition(menu.left + 200.0f, menu.top + 300.0f);
backGround.setFillColor(sf::Color::Blue);
playArmed = false;
};//Load()
/* Handling method for MainMenuState, handles events that may occur in the
MainMenuState. The only parameter it takes is a reference to the state
machine, SEngine.*/
void MainMenuState::Handling(SEngine* gameEng){
while(gameEng->getWindow()->pollEvent(event)){
if(event.type == sf::Event::Closed){
gameEng->notRunning();
gameEng->getWindow()->close();
}
else if (event.type == sf::Event::MouseMoved){
if(((sf::Mouse::getPosition().x >= playButton.getPosition().x) && (sf::Mouse::getPosition().x <= playButton.getPosition().x + playButton.getSize().x))
&& ((sf::Mouse::getPosition().y >= playButton.getPosition().y) && (sf::Mouse::getPosition().y >= playButton.getPosition().y + playButton.getSize().y))){
playButton.setTextureRect(sf::IntRect(0,51,350,50));
playArmed = true;
}else{
playButton.setTextureRect(sf::IntRect(0,0,350,50));
playArmed = false;
}
}
else if (event.type == sf::Event::MouseButtonPressed){
if(event.mouseButton.button == sf::Mouse::Left){
//change to playstate
}
}
}
};//Handling()
/* Paint method for MainMenuState, draws the components of this state onto the screen.
The only parameter it takes is a reference to the state machine, SEngine.*/
void MainMenuState::Paint(SEngine* gameEng){
gameEng->getWindow()->clear();
gameEng->getWindow()->draw(backGround);
gameEng->getWindow()->draw(playButton);
gameEng->getWindow()->display();
};//Paint()
/* Update method for MainMenuState, updates certain values or components that may
have been affected by events in Handling method. The only parameter it takes
is a reference to the state machine, SEngine.*/
void MainMenuState::Update(SEngine* gameEng){
};//Update()
void MainMenuState::TidyUp(){
};//TidyUp()
void MainMenuState::Halt(){
};//Halt()
void MainMenuState::Continue(){
};//Continue()