Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML][C++] Zmiana koloru tekstu po najechaniu kursorem

Ostatnio zmodyfikowano 2021-04-29 18:31
Autor Wiadomość
R0ut4
Temat założony przez niniejszego użytkownika
» 2021-04-29 16:42:44
Próbowałem i wyszło cos takiego:
Problem jest taki, że wszystko się wyświetla itp, jednak po klikni,eciu myszką na tekst start nic się dzieje.
wycinek z main.cpp
C/C++
case Menu:
{
   
if( przycisk_start.getGlobalBounds().contains( sf::Mouse::getPosition( window ).x, sf::Mouse::getPosition( window ).y ) )
   
{
       
if( sf::Mouse::isButtonPressed( sf::Mouse::Left ) )
       
{
           
start = Game;
       
}
    }
   
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Enter ) )
   
{
       
start = Game;
   
}
   
if( sf::Keyboard::isKeyPressed( sf::Keyboard::Escape ) )
   
{
       
window.close();
   
}
}
break;
tekst.hpp
C/C++
#ifndef przycisk_hpp
#define przycisk_hpp

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>

class Guzik
    : public sf::Text //public sf::Drawable, public sf::Transformable
{
private:
   
sf::Text tekst;
public:
   
Guzik( std::string tekst, sf::Color color, sf::Font & font, int charactersize, sf::Vector2i position );
private:
   
void draw( sf::RenderTarget & target, sf::RenderStates states ) const;
};
#endif  // przycisk
tekst.cpp
C/C++
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include "przycisk.hpp"
Guzik::Guzik( std::string tekst, sf::Color color, sf::Font & font, int charactersize, sf::Vector2i position )
{
   
this->tekst.setString( tekst );
   
this->tekst.setFont( font );
   
this->tekst.setColor( color );
   
this->tekst.setCharacterSize( charactersize );
   
this->tekst.setPosition( position.x, position.y );
}
void Guzik::draw( sf::RenderTarget & target, sf::RenderStates states ) const
{
   
states.transform *= getTransform();
   
target.draw( tekst, states );
}
P-178526
pekfos
» 2021-04-29 17:24:57
C/C++
sf::Text tekst;
Wywal to, skoro i tak masz już obiekt sf::Text z dziedziczenia. Teraz masz dwa obiekty sf::Text - jednego używasz do wykrywania kliknięcia, drugiego do wszystkiego innego. Pierwszy nie ma nawet ustawionej pozycji ani tekstu.
P-178527
R0ut4
Temat założony przez niniejszego użytkownika
» 2021-04-29 17:37:02
Spróbuje zaraz, ale nie do końca rozumiem jqk to ma działać, skoro sf::Text tekst; to stworzenie obiektu tekst do którego przypisuje dane

EDIT: class guzik has no member named tekst
P-178528
R0ut4
Temat założony przez niniejszego użytkownika
» 2021-04-29 18:31:17
Ok, po usunięciu "tekst." po this->
I usunięciu funkcji void draw z klasy przycisk.hpp WSZYSTKO DZIAŁA
Dziekuje za pomoc i temat zamykam
P-178529
1 « 2 »
Poprzednia strona Strona 2 z 2