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

Sprite - biały kwadrat mimo istniejącego obiektu tekstury

Ostatnio zmodyfikowano 2017-03-13 23:15
Autor Wiadomość
latajacaryba
Temat założony przez niniejszego użytkownika
Sprite - biały kwadrat mimo istniejącego obiektu tekstury
» 2017-03-13 20:40:53
Witam, mam klasę w której są składniki takie jak:
- sprite
- tekstura

Mam też konstruktor, oto on:
C/C++
Osobik::Osobnik( string obrazek,...)
{
    tex.loadFromFile( obrazek );
    spr.setTexture( tex );
    spr.setPosition( pozycja->wyglad.getPosition() );
}
Mimo tego, że obiekt tex nadal istnieje (jest składową klasy), to widać biały kwadrat przy wyświetlaniu sprite. Ktoś wie, co mozna zrobić? Koniecznie muszę wykonać tę czynność w konstruktorze, ewentualnie w funkcji którą w konstruktorze wywołam. Ktoś ma pomysł? Z góry dziękuję za pomoc
P-158959
pekfos
» 2017-03-13 20:50:16
Niech zgadnę.. trzymasz obiekty tej klasy w kontenerze?
P-158961
latajacaryba
Temat założony przez niniejszego użytkownika
» 2017-03-13 21:33:36
Dokładnie :p
Ale co to ma za znaczenie?
P-158962
Saran
» 2017-03-13 21:55:28
P-158964
pekfos
» 2017-03-13 22:03:20
Ale co to ma za znaczenie?
Przy twoich błędnie zaimplementowanych operacjach kopiowania, całkiem spore, jak widać.
P-158965
michal11
» 2017-03-13 22:15:15
Trzymaj wskaźniki na swoją klasę w kontenerze, pozbędziesz się problemu białych spritów i dodatkowo zyskasz na wydajności.
P-158966
latajacaryba
Temat założony przez niniejszego użytkownika
» 2017-03-13 22:54:25
@pekfos
Nie rozumiem Twojego sarkazmu - nie wiem to pytam.
@michal11
Dzięki, skorzystam z rady.
Temat zamykam.
P-158968
pekfos
» 2017-03-13 23:15:22
Nie rozumiem Twojego sarkazmu - nie wiem to pytam.
Ile to trzeba się nawróżyć z fusów, żeby to tak właśnie wyglądało.. To jest, że odnoszę się do kodu, którego nie podałeś, a może powinieneś. Zresztą nieważne. Dostałeś całkiem jasną wskazówkę. Co może być nie tak z kopiowaniem obiektu klasy? Kopiujesz teksturę (po co w ogóle tam tekstura..?), kopiujesz sprajta (albo zdajesz się na to, że zrobi to kompilator), wszystko jest skopiowane - poza relacją, która łączy jedno z drugim. Sprajt ma w środku adres tekstury, więc jak go nie poprawisz, to będzie taki jaki był, czyli wskazujący na starą teksturę o niepewnej przyszłości.
P-158969
« 1 »
  Strona 1 z 1