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

jak mogę wyświetlić numer objektu

Ostatnio zmodyfikowano 2022-04-05 20:02
Autor Wiadomość
nanoant20
Temat założony przez niniejszego użytkownika
jak mogę wyświetlić numer objektu
» 2022-04-05 18:59:39
klasą "Square" rysuje obiekt. Klasą "NumberObject" znajduje się metoda "GetText(int number)" która pobiera numer, ale nie wiem co mi brakuje, żeby wyświetlić numer na rysowanym obiekcie.
w kodzie jest za komentowana linijka "text_dynamic.drawtekst(my_window);" i ona działa o.k.
ale ja chcę powołać tylko do życia obiekt klasy "Square rectangle"

C/C++
#include <iostream>
#include <vector>
#include <cstring>

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

using namespace std;
using namespace sf;

class NumberObject
{
private:
   
sf::Text text;
   
sf::Font font;
public:
   
NumberObject() { };
   
NumberObject( sf::RenderWindow & my_window, int number, float posx, float posy, int size, sf::Color const & color, sf::Font & font )
   
{
       
text.setFont( font );
       
text.setString( std::to_string( number ) );
       
text.setPosition( posx, posy );
       
text.setCharacterSize( size );
       
text.setFillColor( color );
   
}
   
~NumberObject() { };
   
   
sf::Text GetText( int number )
   
{
       
text.setString( std::to_string( number ) );
       
return text;
   
}
   
   
void drawtekst( sf::RenderWindow & my_window )
   
{
       
my_window.draw( text );
   
}
}
;

class Square
{
   
NumberObject numObj;
private:
   
sf::RectangleShape rect;
public:
   
   
void drawSquare( sf::RenderWindow & my_window, int num )
   
{
       
rect.setFillColor( sf::Color { 30, 30, 30 } );
       
rect.setSize( sf::Vector2f( 75, 120 ) );
       
rect.setPosition( 5, 5 );
       
numObj.GetText( num );
       
my_window.draw( rect );
       
numObj.drawtekst( my_window );
   
}
}
;


int main()
{
   
// Create the main window
   
sf::RenderWindow my_window( sf::VideoMode( 300, 200 ), "SFML window" );
   
   
sf::Texture backgroundt;
   
if( !backgroundt.loadFromFile( "resources/img/black.jpg" ) )
   
{
       
std::cout << "Error loading file" << std::endl;
       
return EXIT_FAILURE;
   
}
   
sf::Sprite backgrounds( backgroundt );
   
   
sf::Font font;
   
if( !font.loadFromFile( "resources/font/DELPHIN_.TTF" ) )
   
{
       
std::cout << "Error loading font" << std::endl;
       
return EXIT_FAILURE;
   
}
   
   
// color background
   
sf::Color bgColor( 30, 30, 30 );
   
   
int num = 121;
   
int rozmiar = 40;
   
float px = 20, py = 22;
   
NumberObject text_dynamic( my_window, num, px, py, rozmiar, sf::Color::Yellow, font );
   
Square rectangle;
   
   
// Start the game loop
   
while( my_window.isOpen() )
   
{
       
// Process events
       
sf::Event event;
       
while( my_window.pollEvent( event ) )
       
{
           
// Close window : exit
           
if( event.type == sf::Event::Closed )
               
 my_window.close();
           
       
}
       
       
// Clear screen
       
my_window.clear( bgColor );
       
       
//background
       
my_window.draw( backgrounds );
       
       
//print tekst
       
rectangle.drawSquare( my_window, 20 );
       
//text_dynamic.drawtekst(my_window);
       
       
        // Update the window
       
my_window.display();
   
}
   
   
return EXIT_SUCCESS;
}
P-179370
pekfos
» 2022-04-05 19:53:59
Obiekt NumberObject w Square jest tworzony domyślnym konstruktorem. Nie ma ustawionej pozycji, czcionki, etc.
P-179372
nanoant20
Temat założony przez niniejszego użytkownika
» 2022-04-05 20:02:05
chciałem pójść na skróty, Dziękuję serdecznie już sobie dalej poradze.
P-179373
« 1 »
  Strona 1 z 1