Witam w trzecim tutorialu,
w tej części opisze dwie sprawy, którymi na pewno jesteście zainteresowani :
wyświetlanie obrazków na ekranie oraz ruszanie nimi (w skrócie zalążki ruchu postaci w grze)

Do roboty….

Po pierwsze będzie nam potrzebny szablon przygotowany w poprzedniej części „Omega – Wyświetlanie tekstu (szablon)”.
Do szablonu dokładamy trzy komponenty (z zakładki Omega, oczywiście:)

Te komponenty to:
OmegaImageList:
– Name : Omil
– OmegaScreen : Omsc

OmegaSprite:
– Name : Omspr

OmegaInput:
– Name : Omin

Mając już te komponenty na formie możemy przystąpić do dalszej części.
Do Omil (OmegaImageList) dodajemy dwie pozycje i przyporządkowujemy im jakieś małe obrazki z dysku twardego. Mam nadzieje, że każdy to potrafi;) Przy dodawaniu obrazków do listy, zakładamy że na pozycji o indeksie 1 jest obrazek do wyświetlenia, a o indeksie 0 – ten którym chcemy poruszać 😉

Wyświetlanie obrazków jest analogiczne do wyświetlania tekstu. Dlaczego?? Ponieważ musimy rozpocząć i zakończyć rysowanie podobnie jak było przy tekście.

Taki fragment kodu wstawiamy oczywiście do zdarzenia OnTimer dla naszego Timera czyli Omti 🙂 Kompilujemy i widzimy w przy lewym górnym rogu wyświetlony podwójnie obrazek o indexie 1.

Teraz czas na coś ciekawszego (przynajmniej dla mnie, nareszcie coś zacznie się ruszać na ekranie).
Potrzebne do tego będzie zdeklarowanie nowej klasy, którą ja nazwałem TGracz (to na przyszłość:)

Musimy dodać także zmienną korzystającą z tej klasy.

No dobra, mamy gotowy szkielet klasy TGracz teraz dodajmy do tego trochę ciała (czytaj kodu:)
Pierwsza na celowniku jest procedura tworząca naszego gracza, która wygląda tak:

Do wydarzenia Formy FormCreate dodajemy odwołanie do procedurki tworzącej gracza:

A do zdarzenia OnTimer naszego zegarka polecenie rysowania gracza:

No dobra teraz kompilujemy projekt w takiej postaci. Na ekranie powinien „pokazać” się teraz nasz gracz w prawym dolnym rogu. To połowa sukcesu.
Aby sukces odnieś w pełni sprawimy zaraz, że nasz gracz zacznie się poruszać.

Do tego będziemy potrzebować właśnie wcześniej dodanego na formę komponentu OmegaInput. Jak większość komponentów tej paczki musimy najpierw zainicjować go przy tworzeniu naszej formatki (w zdarzeniu FormCreate) poleceniem:

Przed napisaniem procedury, w której zdefiniujemy jak ma się poruszać gracz oraz na jakie klawisze ma reagować do zdarzenia OnTimer (dla Omti) wstawmy odwołanie do funkcji sprawdzającej stan kontrolerów gier (klawiatura, mysz, dżojstik).

No nareszcie jesteśmy gotowi na to ostatnie. Do boju… Oto kod całej procedury TGracz.Move (const MoveCount: Single) dla gracza:

Sprawa jest chyba prosta. To znaczy:

    • Sprawdzamy czy jakiś klawisz nie został naciśniety (Omin.Keyboard.States)
    • Czy naciśnięty klawisz to ten na który oczekujemy (np.: oisUp, oisDown)
    • Jeśli to oczekiwany przycisk jest wciśnięty to wykonuj operacje przesunięcia
      (np.: Y := Y + 2)

Na zakończenie bardzo ważna rzecz bez której nic nie będzie się poruszało. Do zdarzenia OnTimer dla Omti musimy dodać procedurę, która będzie pozwalała się ruszać wszystkim Spritą (w tym także naszemu graczowi):

PS.: Na początek wydarzenia OnTimer dla Omti, możemy dla bezpieczeństwa dodać taką linijkę kodu:

To jest proste sprawdzenie czy można rysować po ekranie. Jeśli nie to aplikacja się wyłaczy. Jeśli tak to zaczyna się rysowanie.

Do zobaczenia w następnym arcie, w którym……
STRZELANIE oraz WROGOWIE (zabijasz wroga dostajesz punkty)

Autor: Goofyx

Załączniki