Jak każdy zapewne wie każda aplikacja napisana przy pomocy omegi posiada swój główny ekran (OmegaScreen) . A co jeśli będziemy chcieli wyświetlić coś poza tym ekranem bądź będziemy chcieli wydzielić sobie osobny fragment tego ekranu? Będziemy bawić się w dziesiątki a może nawet setki nowych współrzędnych, aby to wszystko poustawiać w głównym ekranie? Otóż nie, z pomocą przychodzi nam komponent OmegaSurface.

Na początek stwórzmy sobie szablon aplikacji, aby mieć na czym ćwiczyć. Wstawmy na formę OmegaScreen , OmegaTimer , Omega Font i zwykły Panel.

W OnCreate Formy stworzymy czcionkę oraz ustawimy inne podstawowe rzeczy :

Ok , będzie trzeba „okodzić” również Timer 😉 :

Taki szablonik po uruchomieniu będzie wyświetlał tekst na ekranie. Teraz wrzućmy na formę komponent OmegaSurface a następnie w OnCreate formy ustawiamy właściwości OmegaSurface:

Jak łatwo zauważyć OmegaSurface jest bardzo podobna do OmegaScreen-a, mają bowiem wiele wspólnego. OmegaSurface jest „dzieckiem” OmegaScreena. Po stworzeniu pora zabrać się za renderowanie na OmegaSurface . Co tu dużo pisać… Pokaże kod i wszystko będzie już chyba jasne;)

Ten kod wkładamy między bloki BeginRender i EndRender OmegaScreena , zatem nasz OmegaTimer będzie wyglądać tak:

W blokach BeginRender i EndRender OmegaSurface następuje renderowanie na powierzchni (OmegaSurface1) , narysujmy coś zatem ;]

Miedzy bloki wpisujemy :

Zapytacie: dlaczego czyszczony jest ekran główny (Omegascreen) a nie tylko powierzchnia ? a dlatego ze miedzy blokami begin i end render naszej powierzchni wszelkie zdarzenia dotyczą tylko i wyłącznie naszej powierzchni. Popatrzmy, jakie współrzedne wpisałem : Omegasurface1.X i Y, zrobiłem tak, dlatego ze są to wspólrzędne Omegascreen-a i jeżeli bym napisał 0,0 to odwołuje się do współrzędnych głównego ekranu a nie powierzchni.

Można wcisnąć F9 😉 Co widzimy ? Nasza aplikacja narysowała na głównym ekranie napis Surface a na powierzchni Surface1, może nie wygląda to z pozoru ciekawie, lecz kiedy będziecie robić jakiekolwiek GUI do swoich gier bądź cokolwiek podobnego, to zrozumiecie jak to ułatwia sprawę;)

Do tej pory nasze powierzchnie były wewnątrz ekranu głównego, stwórzmy sobie zatem druga, zewnętrzną.

Kładziemy na formę drugi komponent OmegaSurface i w OnCreate Formy dopiszmy :

Został zmieniony uchwyt powierzchni – wyświetlana jest ona na formie a główny ekran pozostał na panelu.

Następnie do timera dodajemy kod :

Po skompilowaniu program powinien wyświetlić 3 napisy :
– na głównym ekranie
– na wewnętrznej powierzchni
– na zewnętrznej powierzchni

Jak mówiłem wcześniej, z pozoru wydaje się ze to w niczym nie pomaga – nic bardziej mylnego.

To chyba już wszystko w tym artykule, jest to mój pierwszy art wiec fale krytyki mile widziane;)

Pozdrawiam
Filuu

Autor: Filuu

Załączniki