W poprzednim poradniku dowiedziałeś się jak zainstalować i uruchomić środowisko Enigma-Dev. Teraz omówimy podstawy interfejsu.

Wiele rzeczy będziemy uczyć się na bieżąco, teraz skupię się na najważniejszych rzeczach.



Sam interfejs przypomina trochę menadżery plików. Lewa strona to "katalogi" i pliki, a po prawej uruchamiamy ich zawartość.

Od razu poinformuję, że najlepiej tworzyć prefiksy dla nazw zasobów. Tak by mieć błąd w np. spr_hero wiedzieć, że dotyczy on sprite, a nie np. object. W nawiasach kwadratowych dodam moje propozycje prefiksów.

- Sprites (grafiki). Jest to miejsce, w którym przechowujemy grafiki do naszej gry. [spr]

- Sounds. Jest to miejsce, w którym przechowujemy muzykę i efekty dźwiękowe. [snd]

- Backgrounds to tła do gry [bkg].

- Paths to ścieżki, po których obiekty mogą chodzić. [path]

- Scripts to zbiór funkcji, które piszemy w języku EDL. Zazwyczaj dodaje się tutaj kod, który może być globalny, niezależny od konkretnych obiektów. [scr]

- Shaders - Jest to kod, który upiększa naszą grę. Kod taki jest wykonywany przez kartę graficzną. [shr]

- Fonts. Można je dodawać by zarządzać tekstem rysowanym przez funkcje DRAW. Oprócz wyboru własnej czcionki można ustalić jej wielkość czy parametry. [font]

- Timelines to sposób wykonywania rzeczy w czasie. Dla przykładu przeciwnik ma przez 6 sekund iść w lewo, a potem iść w prawo przez 6 sekund. Często jednak używa się do tego Event Alarm, ale ten nie pozwala na rozbudowane sterowanie czasem. [time].

- Objects to element w grze wykonujący zadania. Na przykład postać gry czy przeciwnik. Na podstawie różnych wcześniejszych elementów i kodu stworzone obiekty są wdrażane w życie. Obiekty składają się z Eventów i Akcji. [obj]

Event to różny zbiór ... zdarzeń. To tutaj wybieramy interakcje obiektu. Dla przykładu wciśnięcie klawisza, czy zderzenie z innym przedmiotem.

Akcje definiują co ma się stać z obiektem w razie gdy Event zostanie spełniony. Na przykład gdy obj_bullet uderzy obj_hero.

- Room, czyli pokój. Można tutaj umieszczać obiekty. Zazwyczaj są to różnego rodzaju mapy do gry czy interfejsy. [rm]

- Game Settings to różnego rodzaju ustawienia do zbudowania gry. W tym menu ustalamy zachowania co do działania gry (np. czy ma się uruchamiać w Fullscreen, ikonę, nazwę gry itd.). W tym menu można też ustalać moduły, platformy i tak dalej.

### TO CZAS HELLO WORLD

Hello World to klasyczny program (zaraz po programie, który nic nie robi). Jego zadaniem jest wyświetlenie tekstu "Hello World".

Oczywiście w świecie gier komputerowych można to zrobić na parę sposobów, jednak ja użyję do tego funkcji draw_text.

1) Dodaj obj_helloworld. Aby tego dokonać daj prawy przycisk myszy na Objects i wybierz "Create Resource".



Automatycznie wyskoczy nam Object z 3 Akcjami. Create, Normal Step i Draw. Jako, że potrzebujemy Draw, nie potrzebujemy dodawać tego Eventa. Wybierz go.

Teraz musimy dodać akcję. Jako, że będziemy bazować na kodzie EDL (używanie kodu jest o wiele potężniejsze), musimy wybrać submenu "control" i przesunąć klocek "Execute a piece of code" na pole "Actions".

Uruchomi się nam okno "Code", w którym ... piszemy kod.

Na początku proponuję oczywiście tworzyć ogólne komentarze. Enigma-Dev ma opcję nazywania bloku kodu za pomocą potrójnego /. Tak więc stwórzmy nazwę bloku Hello World:

/// Hello World



Jeśli to mamy, zacznijmy od funkcji rysowania tekstu. Jest to funkcja draw_text, która przyjmuje 3 parametry.
* Pozycja X
*Pozycja Y
* Tekst

W programowaniu często (zawsze?) najpierw zaczyna się pisać nazwę funkcji, a potem w nawiasie podajemy wartości do funkcji. W naszym przypadku to:

draw_text(10, 10, "Hello World");



Czyli: Napisz tekst "Hello World" w pozycji X: 10, Y: 10. Zapisujemy kod za pomocą Zielonego przycisku akceptuj. Obiekt również wyłączamy naciskając na taki sam symbol, z opisem "Save".

Teraz dodajemy Room. Dajemy prawy przycisk myszy na Rooms i Create resources. Następnie wybieramy w menu Room obiekt obj_helloword i dodajemy go do Room i zapisujemy.



Naciskamy teraz w menu Enigma przycisk "Play", który zbuduje grę i uruchomi ją. Dostaniemy więc naszą "grę" z napisem Hello World :)