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

[Allegro] odpowiednik cin

Ostatnio zmodyfikowano 2009-11-02 22:14
Autor Wiadomość
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.
P-11236
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.
P-11237
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
P-11238
DejaVu
» 2009-11-02 18:28:57
Dostałeś sposób jak wczytać tekst do zmiennej, np. std::string. Następnie możesz zrobić:
C/C++
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.
P-11239
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
C/C++
///////////////wczytywanie
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.

P-11240
DejaVu
» 2009-11-02 19:14:06
C/C++
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:
C/C++
std::string ble;
wczytajWiersz( ble );
P-11241
szyx_yankez
Temat założony przez niniejszego użytkownika
» 2009-11-02 19:25:35
Dziekuje panu bardzo wszystko pięknie chodzi. zamykam.
P-11242
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)????
P-11253
« 1 » 2
  Strona 1 z 2 Następna strona