[SFML 2.0] Animacje sprajtów
Ostatnio zmodyfikowano 2012-05-17 17:20
Admixior |
» 2012-05-16 22:10:00 hmm... A w tej klasie przetrzymujesz obrazek jako wskaźnik czy jako obiekt? Jeśli jako obiekt to możliwe że ci całe obrazki kopiuje. Używałeś referencji? Jak nie to użyj albo referencji albo wskaźnika na tablicę obrazków i ładuj tylko przez funkcje tak jak do tej pory. Np: sf::Image * obrazki = new sf::Image[ 8 ] . Możliwe że w tych funkcjach definiujesz sobie nowe obiekty (player)(chociaż trudno to powiedzieć bo nie widzę kodu) , które w jakiś sposób ładują lub kopiują obrazki. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-05-16 22:14:22 No przecież trochę zamotało mnie to jak powiedziałeś że konstruktor wykonuje się na nowo, a może to faktycznie prawda, konstruktor na kopi wykonuje się ponownie? |
|
Admixior |
» 2012-05-16 22:24:25 Właściwie to przesyłając do funkcji argument jako wartość wykonuje się "konstruktor kopiujący", to jest coś innego niż zwykły konstruktor. Jak przez referencje lub wskaźnik to tylko adres przesyłasz.
Konstruktor kopiujący kopiuje bezwzględnie wszystko jak leci(wskaźniki itp)(identyczna kopia) wywołując kolejne konstruktory kopiujące dla klas które zawiera, chyba że pisząc klasę ktoś zdecyduje inaczej.
Możliwe że wywołuje się konstruktor kopiujący dla tekstury, a bóg wie jaka ona duża może być. |
|
DejaVu |
» 2012-05-17 16:56:29 W zasadzie to:
1. kopiuje się tekstura do pamięci RAM
2. kopiuje się tekstura do pamięci GPU
3. usuwasz teksturę z pamięci GPU
4. usuwasz teksturę z pamięci RAM
i tak w kółko dla każdej tekstury (dlatego przycina).
Prawidłowo napisany kod będzie raz kopiował teksturę do pamięci RAM i GPU oraz raz ją usuwał (czyli wielokrotnie wykorzysta raz przesłane dane). |
|
hincu |
» 2012-05-17 17:20:17 http://www.sfml-dev.org/documentation/2.0/classsf_1_1Rect.php
sklej sobie z tego jeden obrazek a później z pliku pobieraj sobie x,y ,szerokość i wysokość obrazka, zrób wczytywanie z pliku tych danych, nie z pamięci :P. Ludzie sobie będą wtedy sami mogli modyfikować klient, i GUI :P.
|
|
1 « 2 » |