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

[SFML 2.0] Klasa dziedzicząca po sf::Sprite - błędy w wyświetlaniu

Ostatnio zmodyfikowano 2013-04-20 21:28
Autor Wiadomość
rafixxx25
Temat założony przez niniejszego użytkownika
[SFML 2.0] Klasa dziedzicząca po sf::Sprite - błędy w wyświetlaniu
» 2013-04-20 20:42:30
Witam!

Oto mój kod(maksymalnie skrócony):
main.cpp
C/C++
#include <SFML/Graphics.hpp>
#include "obiekt.hpp"
int main()
{
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 1280, 1024, 32 ), "Kurs SFML - http://cpp0x.pl" );
    sf::Texture tekstura;
    tekstura.loadFromFile( "obrazek.png" );
    sf::Sprite sprajt( tekstura );
    Obiekt nowy( 800, 100, tekstura );
   
    oknoAplikacji.clear( sf::Color::Black );
    oknoAplikacji.draw( nowy );
    oknoAplikacji.draw( sprajt );
    oknoAplikacji.display();
    return 0;
}
obiekt.hpp
C/C++
#ifndef obiekt_hpp
#define obiekt_hpp

class Obiekt
    : public sf::Sprite
{
public:
    Obiekt( float f_x, float f_y, sf::Texture tekstura );
};
#endif
obiekt.cpp
C/C++
#include <SFML/Graphics.hpp>
#include "obiekt.hpp"

Obiekt::Obiekt( float f_x, float f_y, sf::Texture tekstura )
{
    this->setTexture( tekstura );
    this->setPosition( f_x, f_y );
}

Problem jest taki, że gdy rysuję sf::Sprite to wszystko jest ok, ale gdy rysuję używając jako parametru obiektu klasy Obiekt, dziedziczącej po sf::Sprite, to rysowany jest on w dobrym miejscu, ale zamiast grafiki jest biały kwadrat. Wydaje mi się to dosyć dziwne - w końcu pozycja jest odczytywana prawidłowo, to dlaczego tekstura nie.
Zapewne jest to jakiś oczywisty błąd dla osób zaznajomionych z obiektowością i dziedziczeniem, ja za dużego doświadczenia w tym jeszcze nie mam.

Pozdrawiam.
P-80917
Monika90
» 2013-04-20 20:53:35
Ja się nie znam na takich dziwnych bibliotekach, ale spróbuj takiej implementacji konstruktora:
C/C++
Obiekt::Obiekt( float f_x, float f_y, sf::Texture tekstura )
    : sf::Sprite( tekstura )
{
    this->setPosition( f_x, f_y );
}
P-80918
rafixxx25
Temat założony przez niniejszego użytkownika
» 2013-04-20 21:12:27
Niestety, problem nadal występuje.
P-80919
pekfos
» 2013-04-20 21:12:53
Przekazuj obiekt
sf::Texture
 przez referencje.
P-80920
rafixxx25
Temat założony przez niniejszego użytkownika
» 2013-04-20 21:28:27
@pekfos, dzięki. Przeoczyłem tą kwestię - rzeczywiście pomogło ;)
P-80923
« 1 »
  Strona 1 z 1