[SFML 2.0] Problem z wczytywaniem tekstur w wektorach
Ostatnio zmodyfikowano 2020-05-12 22:40
Ashey Temat założony przez niniejszego użytkownika |
[SFML 2.0] Problem z wczytywaniem tekstur w wektorach » 2020-05-12 19:05:54 Witam, tworzę grę 2d za pomocą sfml, chcę aby moja postać strzelała, postanowiłem, że za każdym razem gdy przycisk odpowiadający za strzał zostanie wciśnięty, na ekranie pojawi się sprajt lecący w stronę granic okna. Stworzyłem wektor "std::vector <pocisk> pociski", który po każdym oddaniu strzału powiększa się o 1 (aby na ekranie mogło być na raz więcej niż jeden pocisk), gdy pocisk doleci do granicy sceny, element w wektorze zostaje usuwany. Klasa pocisk w swoim konstruktorze nadaje nowo dodanemu do wektora elementowi teksturę której nazwę podajemy przy "pociski.push_back("nazwa", x, y ...)". Mój problem polega na tym, że pociski na ekranie się nie wyświetlają, wszystko działa jak powinno, ale zamiast stworzonej przeze mnie grafiki pocisku wyświetla się biały kwadracik, czyli tekstury nie udaje się wczytać. |
|
pekfos |
» 2020-05-12 19:15:27 Implementacja kopiowana typu pocisk jest błędna. Pewnie w ogóle jej nie ma, domyślne kopiowanie nie będzie tu działać poprawnie. Kopiowanie musi ustawić od nowa teksturę dla sprajtu. Poza tym to nie jest dobra praktyka, żeby wielokrotnie wczytywać tą samą teksturę. Powinieneś ją mieć wczytaną raz, wtedy nawet nie miałbyś tego problemu, o którym piszesz. |
|
Ashey Temat założony przez niniejszego użytkownika |
» 2020-05-12 20:15:38 Czyli mogę np. zrobić tylko sprajta jako składową klasy i przypisywać jej od razu teksturę (, wtedy mam tylko jedna teksturę z władowaną grafiką, zamiast ładowania jej przy tworzeniu każdego pocisku), z poziomu pętli głównej przed narysowaniem na ekranie? Czy jak to najlepiej rozwiązać? Nie mam innego pomysłu, pamiętając, że te zmienne w wektorze są dynamicznie usuwane i tworzone na nowo, chyba muszę każdą nową inicjować osobno, bo zamysł jest właśnie taki, aby na ekranie na raz mógł być więcej niż jeden pocisk.
|
|
pekfos |
» 2020-05-12 22:30:23 Jedna tekstura i wiele sprajtów jej używa. Więc przy tworzeniu pocisku zamiast ścieżki do pliku przekazuj wskaźnik/referencję na już wczytaną teksturę. |
|
Ashey Temat założony przez niniejszego użytkownika |
» 2020-05-12 22:40:54 okej, dzięki wielkie |
|
« 1 » |