Przy wstępnym obmyślaniu mapy powiązań plików nagłówkowych z logiczną strukturą kodu, zauważyłem jeden aspekt organizacyjny. Mianowicie unikanie, wszędzie tam gdzie to jest możliwe, dyrektywy #include w plikach nagłówkowych znacznie zmniejszyło częstotliwość występowania konfliktów deklaracji.
Nazwy typów, funkcji i zmiennych, które są zależne od systemu (lub od biblioteki ramowej, oprócz tych najbardziej pierwotnych np. uint32, uint8), piszę dużymi literami, ze znakiem "_" na początku. Są to nazwy, które informują w sposób zuniwersalizowany (w miarę możliwości) o zadaniu, z którym są związane.
Główna funkcja odpalająca cały program znajduje się w "main.cpp", poza katalogiem "framework_dependent" i obecnie wygląda nastepująco:
int main( int
argc, char** argv ) { _FRAMEWORK_INIT(); initGame(); _FRAMEWORK_LOOP(); _FRAMEWORK_END(); return 0; } |
Pętla główna w "framework_dependent/loop.cpp" odnotowuje sam fakt wystąpienia zdarzenia (systemowego, sprzętowego, lub związanego z mechaniką samej gry) i umieszcza tą informację na tablicy globalnej. Pętla ta jest zainicjowana w taki sposób, że reaguje jedynie na zdarzenia klawiatury, zamknięcie okna i zdarzenia zdefiniowane przez programistę. Ten zabieg pozwala zmniejszyć obciążenie procesora, w przypadku gdy na ekranie nic się nie dzieje, lub gdy gracz nie wykonuje w danej chwili żadnej akcji na urządzeniu sterującym. Gra nie generuje żadnych dodatkowych obliczeń w tle.
Brak komentarzy:
Prześlij komentarz