Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _______________________________________________________________________________________________________________________________________
- Original code in main
- _______________________________________________________________________________________________________________________________________
- if (rectRect.contains(static_cast<sf::Vector2f>(sf::Mouse::getPosition(window))))
- {
- if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- rectangle.setFillColor(sf::Color::Green);
- std::cout << "mouse click" ;
- }
- else
- {
- rectangle.setFillColor(sf::Color::White);
- }
- rectangle.setOutlineColor(sf::Color::Blue);
- std::cout << "mouse over";
- }
- else
- {
- rectangle.setOutlineColor(sf::Color::Red);
- }
- _______________________________________________________________________________________________________________________________________
- Button.hpp
- _______________________________________________________________________________________________________________________________________
- #pragma once
- #ifndef BUTTON_HPP
- #define BUTTON_HPP
- #include <SFML\Graphics.hpp>
- #include <iostream>
- class Button : public sf::Drawable
- {
- public:
- Button();
- Button(sf::Texture&,float,float,float,float);
- ~Button();
- bool mouseOver;
- bool leftclick;
- void Update(sf::Window&);
- sf::Sprite getSprite() const;
- private:
- virtual void draw(sf::RenderTarget& window, sf::RenderStates state) const
- {
- window.draw(_button, state);
- }
- sf::Sprite _button;
- sf::FloatRect buttonRect = _button.getGlobalBounds();
- sf::Vector2i mpos;
- };
- #endif // BUTTON_HPP
- _______________________________________________________________________________________________________________________________________
- Button.cpp
- _______________________________________________________________________________________________________________________________________
- #include "button.hpp"
- Button::Button()
- {
- }
- Button::Button(sf::Texture& TEMP_Texture, float posx, float posy, float sizex, float sizey)
- {
- _button.setTexture(TEMP_Texture);
- _button.setPosition(posx,posy);
- _button.setScale(sizex,sizey);
- _button.setTextureRect(sf::IntRect(0,0, 32, 16));
- }
- Button::~Button()
- {
- }
- sf::Sprite Button::getSprite() const
- {
- return _button;
- }
- void Button::Update(sf::Window& window)
- {
- mpos = sf::Mouse::getPosition(window);
- if (buttonRect.contains(static_cast<sf::Vector2f>(mpos)))
- {
- if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- _button.setTextureRect(sf::IntRect(32, 0, 64, 16));
- leftclick = true;
- std::cout << "Mouse: Left Click";
- }
- else
- {
- _button.setTextureRect(sf::IntRect(0, 0, 32, 16));
- leftclick = false;
- }
- _button.setTextureRect(sf::IntRect(64, 0, 96, 16));
- mouseOver = true;
- std::cout << "Mouse: over";
- }
- else
- {
- mouseOver = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement