szyx_yankez Temat założony przez niniejszego użytkownika |
[Allegro] odpowiednik cin » 2009-11-02 16:19:27 Witam otóż pisze gra pod allegro jednak nie wiem jak wprowadzić wartość zmiennej np. dla konsoli jest to cin>>nazwa_zmiennej; .
Możecie mi podać jaki jest otpowiednik dla allegro? Z góry dziękuje. |
|
DejaVu |
» 2009-11-02 16:32:55 Temat był już podobny: http://forum.ddt.pl/?Tid=762. Dodam, że jest jeszcze opcja z Allegro GUI, jednak nie pisałem niczego za pomocą niego, więc nie podam rozwiązania. W dziale kursy jest wspomniany kurs (częściowo przetłumaczony) ale na razie nie ma weny do dalszego tłumaczenia i zainteresowanie jest małe, więc wisi sobie w powietrzu i czeka na lepsze czasy. |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-11-02 18:23:27 W tym temacie nie ma rozwiązanego problemu ,poniważ steclek napisał jakoś funkcje wczyt(); ciekawe gdzie się to wczyta????
Problem nadal nie jest rozwiązany prosze o sposób w jaki można wczytać dane do zmiennej |
|
DejaVu |
» 2009-11-02 18:28:57 Dostałeś sposób jak wczytać tekst do zmiennej, np. std::string. Następnie możesz zrobić: int liczba; sscanf( napis.c_str(), "%d", & liczba );
/edit: Z tonu Twojej wypowiedzi wynika, że "W allegro jest coś co zastąpi cin - na pewno!". Odpowiedź brzmi: nie ma. Chyba, że Allegro GUI. Kurs jest długi, więc możesz się zacząć go uczyć, jeśli to rozwiązanie jest dla Ciebie złe. |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-11-02 19:05:53 Wiem że niema chociarz dziwi mnie aby taka biblioteka nie maiła tak ważnej funkcji. znalazłem coś takiego string wyraz; string::iterator iter = wyraz.begin(); int caret = 0; bool insert = true; do { while( keypressed() ) { int newkey = readkey(); char ASCII = newkey & 0xff; char scancode = newkey >> 8; if( ASCII >= 32 && ASCII <= 126 ) { if( insert || iter == wyraz.end() ) iter = wyraz.insert( iter, ASCII ); else wyraz.replace( caret, 1, 1, ASCII ); caret++; iter++; } else switch( scancode ) { case KEY_BACKSPACE: if( iter != wyraz.begin() ) { caret--; iter--; iter = wyraz.erase( iter ); } break; } } textout_ex( screen, font, wyraz.c_str(), 270, 210, makecol( 150, 0, 255 ), - 1 ); } while( !key[ KEY_ENTER ] );
Działa to. Wszystko pięknie się wczytuje i także dobrze wyswietla wszystko. Jednak dla mnie jest to troche czaso chłonne np. jak chce wczytać 20 zmiennych to za kazdym razem wypisywanie tego kodu na samo wczytanie zajmie mi z 1000 wierszy. Próbowałem zrobić z tego funkcje jednak cos mi to nie wychodzi. np. wczytaj(nazwa_zmiennej); Mógł by mi ktoś zrobić taką funkcje wydaje mi sie że dla dobrych programistów jak pan Piotr wystarczy kilka klepnięć w klawiature i gotowe. Bardo prosze o tą funkcje. I dziękuje że poswięcacie dle mnie swój czas. |
|
DejaVu |
» 2009-11-02 19:14:06 void wczytajWiersz( string & wyraz ) { wyraz.clear(); string::iterator iter = wyraz.begin(); int caret = 0; bool insert = true; do { while( keypressed() ) { int newkey = readkey(); char ASCII = newkey & 0xff; char scancode = newkey >> 8; if( ASCII >= 32 && ASCII <= 126 ) { if( insert || iter == wyraz.end() ) iter = wyraz.insert( iter, ASCII ); else wyraz.replace( caret, 1, 1, ASCII ); caret++; iter++; } else switch( scancode ) { case KEY_BACKSPACE: if( iter != wyraz.begin() ) { caret--; iter--; iter = wyraz.erase( iter ); } break; } } textout_ex( screen, font, wyraz.c_str(), 270, 210, makecol( 150, 0, 255 ), - 1 ); } while( !key[ KEY_ENTER ] ); }
Użycie: std::string ble; wczytajWiersz( ble ); |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-11-02 19:25:35 Dziekuje panu bardzo wszystko pięknie chodzi. zamykam. |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-11-02 22:13:33 Otworzyłem temat ponownie ponieważ do zmienne z kodem powyżej można wczytywać tylko text(string). Co zrobić aby można było wczytywać liczby(int,lub double)???? |
|
« 1 » 2 |