Witam serdecznie,

Od pewnego czasu pisze prostą grę i potrzebował bym porad, podpowiedzi dotyczących kwestii obsługi menu, animacji, rysowania. Na obecną chwilę mam zrobioną następujące elementy związane z tym tematem:
-scena "2D" - rzutowanie ortogonalne
-funkcja rysująca podane teksty w odpowiednich pozycjach

bardzo skrócony opis funkcji do wyświetlania menu
menu(){
...
tekst("menu",1,3...);
tekst("graj",1,2...);
tekst("opcje",1,1...);
}

tekst(string nazwa, int x, int y...){
przypisuje jako aktywną texture czcionki którą będę nakładał na obiekty
vector - do którego generuje i zapisuje pozycje wierzchołków na podstawie podanych informacji
przekazuje informacje do VAO
wyświetlam na ekranie dany obiekt
}

funkcje menu wykonuje w każdej klatce gry, czyli za każdym razem generuje treści które mają się wyświetlać.
funkcja tekst starałem się by była uniwersalna bo chciałbym ją wykorzystać również do czatu w grze
a teraz pytania:

  1. Rysując w ten sposób tworzą mi się w aktualnym przypadku 3 obiekty, wiadomo z każdym obiektem ilość klatek spada, czy zrobienie dodatkowej funkcji która po zakończeniu generowania treści złączy je w jeden obiekt zwiększy szybkość pracy? (pewnie powinienem wygenerować to raz przed pętlą tylko co z animacjami ^^)
  2. Czy do sprawdzenia gdzie użytkownik kliknął w daną opcje powinienem bazować na pozycji kursora i jakimś hitboxie? Czy są inne efektywniejsze sposoby sprawdzenia w co się klika?
  3. Menu znajdowało by się po lewej stronie. Animacje jakich chciał bym użyć to efekt przyciśniętego przycisku, po czym w przypadku "opcji" box z całą zawartością pojawiałby się po prawej stronie na zasadzie od alpha 0 do 1. W tym miejscu nie mam koncepcji jak to wszystko logicznie spiąć. Czy generować wszytko przed, czy w czasie rzeczywistym?

Za pomoc i porady z góry dziękuję.