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

SFML i gra z menu, a programowanie obiektowe.

Ostatnio zmodyfikowano 2012-07-13 15:02
Autor Wiadomość
Virpi
Temat założony przez niniejszego użytkownika
SFML i gra z menu, a programowanie obiektowe.
» 2012-07-03 14:49:50
Witam, mam już na swoim koncie zwykłe proste i banalne gry pisane przy użyciu SFML, w których od razu po uruchomieniu coś się dzieje ;) gry w pełni obiektowe, bo pisane na zaliczenie przedmiotu. Jednak teraz naszło mnie na zrobienie jakiegoś ładnego menu do gry, np. po uruchomieniu jest do wyboru na ekranie "nowa gra", "opcje", "nejlepsze wyniki", "info", "wyjście". Mam teraz pytanie, jak przez to orgranizować kod? Czy każdy z takich ekranów powinien być obiektem innej klasy, w której będę przechwowywał jakieś napisy itp wyświetlane, gdy ten ekran będzie aktywny? Np. jak wybiorę z menu "info" to utworzę obiekt jakiejś tam klasy CInfo, w której mam zdefiniowane napisy i ich położenie na ekranie, styl itp. I pytanie, po czym wtedy poznawać, co ma być rysowane na ekranie? Czy w obiektach tych klas dać jakąś zmienną bool, która będzie mówiła o tym, czy dany obraz jest teraz aktywny czy nie?

Mam nadzieję, że nie zamieszałem za bardzo ;)
P-59470
LukiPRO
» 2012-07-03 18:05:24
Do tej pory pisałem strukturalnie ale powinno być tak samo lub podobnie.

Jak masz menu i tam przyciski to masz:
C/C++
bool Menu = true;
bool newGame = false;
bool Options = false;
bool Exit = false;

i jak jakiś przycisk zostanie wciśnięty np Opcje to zmieniasz np
C/C++
bool Menu = false;
bool Options = true;

i masz np:
C/C++
while( window.isOpen() )
{
    if( menu )
    {
        tutaj kod za wy ś wietlanie menu
    }
   
    if( NewGame )
    {
        tutaj kod za rozpocz ę cie gry
    }
   
    if( Options )
    {
        tutaj kod za wy ś wietlanie opcji
    }
   
    if( Exit )
    {
        tutaj kod za wyj ś cie
    }
}

Jak piszesz obiektowo to powinno być podobnie.
Nie wiem czy jest to dobre rozwiązanie ale zawsze tak pisałem i jakoś to działa (choć na 100% musi być jakiś lepszy sposób żeby to zrobić)
Jeżeli ktoś zna lepszy sposób to chętnie zobaczę wiec tym samym podłączam się pod pytanie autora tematu.
P-59487
m4tx
» 2012-07-03 19:43:42
@up to nie jest zbyt dobry pomysł. Raczej nie będzie nikt wyświetlał np. Opcji i Nowej gry jednocześnie...

Lepszym rozwiązaniem będzie tu raczej int przechowujący aktualne menu. Można też użyć enuma, coby kod czytelniej wyglądał.
P-59492
waxx
» 2012-07-09 15:16:57
Klasa wirtualna sceny/ekranu zawierajaca wlasny init update render itd + wskaznik z aktualnym ekranem przez ktory wywolujesz logike i render ekranu aktualnego
P-59739
mati1qazxsw2
» 2012-07-13 15:02:03
Chcesz być bardziej obiektowy? Stwórz system GUI z eventami, stwórz klasę menu(dziedziczy od klasy komponent), stwórz klase Window, dodaj do tego konteneru menu, w menu zaimplementuj obsługe callbacków i <francuski akcent>Ta dam!Menuu gotoweee!</francuski akcent>
P-59924
« 1 »
  Strona 1 z 1