Pobieranie zawartosc wektora
Ostatnio zmodyfikowano 2009-08-22 14:06
PhonniX Temat założony przez niniejszego użytkownika |
Pobieranie zawartosc wektora » 2009-08-21 19:28:35 Witam. Mam problem, chcę pobrać z wektora wartość id danego potwora, ale zawsze pobiera te ostatnią, dlaczego? for( int i = 0; i < Potwory.size(); i++ ) { if( mouse_b == 1 ) { if( cel !=- 1 ) { cel =- 1; } if(( Potwory[ i ].x - 32 - iEkrx + 160 ) <= mouse_x && ( Potwory[ i ].x + 32 - iEkrx + 160 ) >= mouse_x && ( Potwory[ i ].y - 32 - iEkry + 160 ) <= mouse_y && ( Potwory[ i ].y + 32 - iEkry + 160 ) >= mouse_y ) { cel = Potwory[ i ].id; } }
|
|
DejaVu |
» 2009-08-21 19:57:12 1. Przechodzisz po wszystkich obiektach 2. Jeśli warunek jest spełniony, zapisujesz sobie cel
Jeśli otrzymujesz zawsze ostatni cel to znaczy, że dla ostatniego celu spełniony jest warunek. |
|
PhonniX Temat założony przez niniejszego użytkownika |
» 2009-08-22 12:58:15 Ok już sobie poradziłem: if( mouse_b == 1 ) { int i = 0; while( i < Potwory.size() ) { if( cel !=- 1 ) { cel =- 1; } if(( Potwory[ i ].x - 32 - iEkrx + 160 ) <= mouse_x && ( Potwory[ i ].x + 32 - iEkrx + 160 ) >= mouse_x && ( Potwory[ i ].y - 32 - iEkry + 160 ) <= mouse_y && ( Potwory[ i ].y + 32 - iEkry + 160 ) >= mouse_y ) { cel = Potwory[ i ].id; i = Potwory.size(); } else { i++; } } }
|
|
DejaVu |
» 2009-08-22 14:06:03 Jeśli chciałeś przerwać pętlę for wystarczyło wpisać break :) Nie wydaje mi się jednak żeby to było porządane działanie - choć z drugiej wersji algorytmu, który przedstawiłeś dokładnie to wynika. |
|
« 1 » |