1 zmienna do sterowania kilkoma czynnościami
Ostatnio zmodyfikowano 2012-08-08 19:55
Savail Temat założony przez niniejszego użytkownika |
1 zmienna do sterowania kilkoma czynnościami » 2012-08-07 17:09:05 Hej, Mam w swoim projekcie pętlę, która przechodzi przez obiekty klasy i wykonuje dla każdego z nich operacje dla aktualnej klatki animacji. Wewnątrz tej pętli możliwe są 3 akcje, które chciałbym aby wykonały się tylko raz podczas danej klatki animacji, na samym jej początku. Do tej pory dla każdej z tych akcji tworzyłem w klasie obiektu osobną zmienną typu bool którą ustawiałem na true gdy już w danej klatce animacji akcja została wykonana a resetowałem do false gdy pętla przechodzi do kolejnej klatki animacji. Problem polega na tym, że chciałbym usprawnić to trochę. Czy ma ktoś jakiś pomysł na to abym nie musiał dla każdej akcji tworzyć nowych zmiennych w klasie? Wolałbym używać jednej zmiennej typu bool do kontrolowania wszystkich 3 akcji ale ważną tylko dla aktualnego obiektu klasy. Próbowałem to zrobić tworząc tą zmienną typu bool jako static wewnątrz pętli i dla każdej akcji w osobnym zakresie ważności. To jednak nie wypaliło bo te same zmienne static były także używane na rzecz wszystkich obiektów klasy przez które pętla przechodziła. Byłbym wdzięczny za sugestie i porady! |
|
DejaVu |
» 2012-08-07 17:11:24 std::bitset |
|
Savail Temat założony przez niniejszego użytkownika |
» 2012-08-07 17:25:06 Tego typu akcji będzie coraz więcej w tej pętli a ten kontener bitset przeczytałem, że ma stały rozmiar. To mi trochę nie odpowiada, a jeśli chodzi o vector lub inne dynamiczne przydzielanie pamięci to też odpada bo i tak musiałbym przydzielać pamięć za każdym razem jak będę chciał stworzyć nową akcję tego typu. Wolałbym też nie odnosić się do tej zmiennej bool po przez tablicę. Bo musiałbym wtedy zawsze kontrolować indeks tej zmiennej a to w sumie nic nie udogadnia. |
|
DejaVu |
» 2012-08-07 18:02:01 A co to za problem utworzyć bitseta o rozmiarze np. 256 bitów i potem zapalać kolejne bity wraz z nowymi funkcjonalnościami? Poza tym jeżeli robisz problem z faktu, że trzeba zwiększyć numerek oraz problem z dynamicznej alokacji pamięci to myślę, że sam nie masz do końca określonych wymagań wobec tego co chcesz osiągnąć. |
|
Savail Temat założony przez niniejszego użytkownika |
» 2012-08-07 18:15:29 To raczej ty nie zrozumiałeś o co mi chodzi. Jak coś takiego jest niemożliwe albo nie wiesz to po prostu powiedz a nie odrazu narzucasz komuś że sam nie wie czego chce... Po prostu chciałem stworzyć coś jak statyczna zmienna lokalna. Taką zmienną tworzyłbym w osobnym zakresie ważności razem z daną akcją ale wtedy już definicja tej zmiennej w kolejnych przejściach pętli się nie odbywa. A zastanawiałem się czy możliwa jest definicja nowej zmiennej statycznej (chociaż nazwanej tak samo i w tym samym miejscu) ale w kolejnym przejściu pętli, zachowując i nie naruszając tych zmiennych statycznych które utworzyłem w poprzednich przejściach pętli. |
|
DejaVu |
» 2012-08-07 19:00:50 void funkcja() { static std::vector < bool > vDane; vDane.push_back( true ); printf( "%d\n", vDane.size() ) } |
|
Savail Temat założony przez niniejszego użytkownika |
» 2012-08-07 19:42:18 Wypróbowałem ale niestety nie działa. Widocznie to co chciałem zrobić to już zbyt wielkie przekombinowanie, nawet jak na c++ ;p. Mimo wszystko dzięki za odpowiedzi |
|
waxx |
» 2012-08-07 20:27:47 bleh myslalem troche o tym i doszedlem do wniosku ze najprosciej zrobic...trzy zmienne serio masz z tym taki problem? :P
najladniej, najszybciej, najmilej i ogolnie najprzyjemniej... mysle ze nie ma sie doszukiwac w tym temacie czegos wiecej, serio :) |
|
« 1 » 2 |