Skocz do zawartości

Jak zrobić menu ?


Rekomendowane odpowiedzi

Nie rozumie czego tu się da nie rozumieć ??:D

Bardzo prosty przykład z wykorzystaniem tablicy "m" i zmiennymi tzw. "sterującymi"

Widać jesteś bardzo początkujący więc radzę ci przeczytaj jak największą ilość artykułów i przeanalizuj proste przykłady i stopniowo zwiększaj poziom wiedzy :D

Samo nic nie przyjdzie

Odnośnik do komentarza
Udostępnij na innych stronach

Ale mi najbardziej chodzi oto żeby np. bierzesz naciskasz strzałke w dół napis się podświetla i możesz enter nacisnąc i przeniesie Cię np. do instrukcji lub wyjdzie z gry :P

 

@edit

 

Ewentualnie może być myszką że najeżdżasz myszką to się podświetla (np. na zielono) klikasz i grasz :P

Odnośnik do komentarza
Udostępnij na innych stronach

Tworztysz obiekt menu w jego crate piszesz:

pozycja = 0;             // Aktualna pozycja kursora w menu
pauza = false;           // Pauza do oczekiwania na wcisniecie klawisza.
draw_set_color(c_white); // Kolor czcionki

menus[0] = "twoj tekst: ";
menus[1] = "twój tekst: ";
menus[2] = "twój tekst ";
menus[3] = "twój tekst: ";
menus[4] = "twójtekst;

W stepie

if ( pauza )   // Jezeli jest pauza
{
    if ( keyboard_check ( vk_anykey ) )         // Jezeli jakis klawisz zostal nacisniety
    {
        pauza = false;                          // Wylaczamy pauze
        global.key[pozycja] = keyboard_key;     // Zapisujemy numer klawisza do danej pozycji
        io_clear();                             // Resetujemy aktualny stan klawiszy
    }
}
else        // Jezeli pauzy nie ma, to pozwalamy kursorowi zmieniac pozycje w menu    
{
    if ( keyboard_check ( vk_up ) )
    {
        if ( pozycja > 0 )
        {
           pozycja -= 1;
           io_clear();   // Resetujemy stan klawiszy
        }
    }
    else if ( keyboard_check ( vk_down ) )
    {
        if ( pozycja < 4 )
        {
            pozycja += 1;
            io_clear();
        }
    }
}

if ( keyboard_check ( vk_enter ) )  // Jezeli naciskamy enter - wybieramy jakas pozycje z menu
{
    if ( pozycja == 4 )     // Pozycja czwarta bedzie oznaczac wyjscie z menu
    {
        room_goto_next();   // Wychodzimy z menu
        
        ini_open('config.ini'); // Zapis sterowania do pliku
        ini_write_string('STEROWANIE','Gora',string(global.key[0]));
        ini_write_string('STEROWANIE','Dol',string(global.key[1]));
        ini_write_string('STEROWANIE','Lewo',string(global.key[2]));
        ini_write_string('STEROWANIE','Prawo',string(global.key[3]));
        ini_close();
    }
    else    // Jezeli to pozycja gdzie jest redefinicja jednego z 4 klawiszy
    {
        if ( !pauza )   // Jezeli pauzy nie ma
        {
            pauza = true;               // Wlaczamy pauze
            global.key[pozycja] = 999;  // Ustawiamy specjalny kod klawisza... ktorego nie ma...
            io_clear();                 // Resetujemy stan klawiatury
        }
    }

i w draw:

for ( i = 0; i <= 4; i += 1 )
{
    if ( i == pozycja )
    {
        draw_set_color(c_red);

        if ( i == 4 )
           draw_text(x, y+i*30, menus[i] );
        else
           draw_text(x, y+i*30, menus[i] + klawisz_string( global.key[i] ) );

        draw_set_color(c_white);
    }
    else
    {
        if ( i == 4 )
           draw_text(x, y+i*30, menus[i] );
        else
           draw_text(x, y+i*30, menus[i] + klawisz_string( global.key[i] ) );
    }
}

Musisz sobie trochce przekształcic te skrypty ;)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 7 miesięcy temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...