Sprite - biały kwadrat mimo istniejącego obiektu tekstury
Ostatnio zmodyfikowano 2017-03-13 23:15
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: 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 |
|
pekfos |
» 2017-03-13 20:50:16 Niech zgadnę.. trzymasz obiekty tej klasy w kontenerze? |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-03-13 21:33:36 Dokładnie :p Ale co to ma za znaczenie? |
|
Saran |
» 2017-03-13 21:55:28 |
|
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ć. |
|
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. |
|
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. |
|
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. |
|
« 1 » |