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

[SFML] Jak sprawdzić , czy przed sprajtem nie znajduje się inny sprajt

Ostatnio zmodyfikowano 2012-09-19 02:04
Autor Wiadomość
SeaMonster131
» 2012-09-18 17:53:23
To była tylko propozycja... :P Nawet nie sprawdzałem czy jako takich błędów nie ma. A kod umieszczamy na forum.
Gdybyś poszukał, wiedziałbyś, że vector leży w przestrzeni nazw std - » standard C++vector.
Po drugie ta pętla ma jakiś sens?
C/C++
for( int n = 1; n == block.size() - 2; n++ )
Nie wspominając o tym, że vectora "nie da się wypisać":
AppWin.Draw( block[ n ] );
Dlatego użyj tego, co umiesz itd.
P-65150
sinoo
Temat założony przez niniejszego użytkownika
» 2012-09-18 21:08:40
   Nie wiem, czy to można tak nazwać, ale dzieło prawie skończone - wystarczy dodać tylko jeszcze klasę postaci. Jednak nie obędzie się bez problemów :D Wiem, że strasznie tragizuję, gdy coś mi nie wychodzi i zaraz z tym na forum, ale dużo czasu często spędzam na rozwiązywanie problemów i nie zawsze mi to wychodzi najlepiej. Rysowanie, klasy i pętla działają poprawnie. Nie wiem jednak co się dzieje z sprajtami. Zamiast obrazków wczytywanych z pliku mam po prostu białe pole o rozmiarach obrazka. Oto link do kodu: http://wklej.se/kod_by_sinoo_new3  - hasło to "abc123"(bez nawiasów). Zrobiłem sprajt testowy, który wczytuje tą samą zmienna obrazkową do sprajta i wyświetlał się on poprawnie, więc plik obrazka jest dobry.
   Może to nie ma wielkiego znaczenia, ale przy kompilacji wywaliło mi warning'i. nigdy się zbytnio nimi nie przejmowałem, gdyż głównie dotyczyły zamiany typu zmiennej
int
 na
float
, co raczej nie miało wielkiego znaczenia, ale oprócz tego ostrzeżenia wyskoczyło także jedno inne - w sumie trzy. Oto treść całego LOG'a z kompilacji:

Compiling...
main.cpp
d:\documents and settings\sysop\moje dokumenty\visual studio 2008\projects\sfml project\sfml project\funkcje.h(22) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
d:\documents and settings\sysop\moje dokumenty\visual studio 2008\projects\sfml project\sfml project\funkcje.h(22) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
d:\documents and settings\sysop\moje dokumenty\visual studio 2008\projects\sfml project\sfml project\main.cpp(28) : warning C4018: '<' : signed/unsigned mismatch
Linking...
LINK : D:\Documents and Settings\SysOp\Moje dokumenty\Visual Studio 2008\Projects\SFML Project\Debug\SFML Project.exe not found or not built by the last incremental link; performing full link
Embedding manifest...
Build log was saved at "file://d:\Documents and Settings\SysOp\Moje dokumenty\Visual Studio 2008\Projects\SFML Project\SFML Project\Debug\BuildLog.htm"
SFML Project - 0 error(s), 3 warning(s)

Oprócz białych kwadratów zamiast obrazków w sprajtach, nie ma więcej problemów.
P-65178
DejaVu
» 2012-09-19 02:04:23
Poczytaj o przekazywaniu argumentów przez referencję oraz ich zwracaniu i zastosuj się do używania referencji w odniesieniu do obiektów przechowujących tekstury. Obiekt, który próbujesz wyświetlić jest kopiowany, później przypisywany do sprajta, później skopiowany obiekt tekstury jest niszczony i w konsekwencji chcesz wyświetlić coś co nie istnieje.

/edit:
Reasumując:
C/C++
Block( sf::Image im, int pX, int pY )
Źle napisany konstruktor jest przyczyną występującego błędu.
P-65186
1 2 « 3 »
Poprzednia strona Strona 3 z 3