kubek3898 Temat założony przez niniejszego użytkownika |
Problem z pętlą for, i wypisywaniem tekstu funkcją textprintf_ex() » 2013-05-06 20:21:47 Dlaczego taki kod: int liczba = 20;
for( int i = 0; i < 2; i++ ) { textprintf_ex( bufor, font, 20, liczba, makecol( 0, 0, 255 ), - 1, "%i. %s", i += 1, bonusesItems[ i ].c_str() ); liczba += 20; }
szwankuje, i tekst na początku się pojawia, a później znika (w mega tempie współrzędne się zmieniają)? Lecz taki kod: textprintf_ex( bufor, font, 20, 20, makecol( 0, 0, 255 ), - 1, "%i. %s", 1, bonusesItems[ 0 ].c_str() ); textprintf_ex( bufor, font, 20, 40, makecol( 0, 0, 255 ), - 1, "%i. %s", 2, bonusesItems[ 1 ].c_str() ); textprintf_ex( bufor, font, 20, 60, makecol( 0, 0, 255 ), - 1, "%i. %s", 3, bonusesItems[ 2 ].c_str() );
działa? Przecież pętla powinna się wykonać tak samo jak powyższy tekst. |
|
Monika90 |
» 2013-05-06 20:44:34 textprintf_ex( bufor, font, 20, liczba, makecol( 0, 0, 255 ), - 1, "%i. %s", i += 1, bonusesItems[ i ].c_str() );
Tutaj masz niezdefiniowane zachowanie. Ponieważ, w tym samym wyrażeniu modyfikujesz zmienną i ( i += 1 ) oraz używasz jej wartości jako indeksu tablicy ( bonusesItems[ i ] ) . |
|
kubek3898 Temat założony przez niniejszego użytkownika |
» 2013-05-06 20:45:58 Faktycznie. Twój sposób działa, jednak udało mi się to rozwiązać w inny sposób: for( int i = 0; i < sizeof( bonusesItems ) / sizeof( string ); i++ ) { textprintf_ex( bufor, font, 20, liczba, makecol( 0, 0, 255 ), - 1, "%i. %s", i + 1, bonusesItems[ i ].c_str() ); liczba += 20; } Tak więc zamykam, problem rozwiązany. Dziękuje za odpowiedź i pomoc :) |
|
« 1 » |