NukeBoards - Kreatywność przede wszystkim
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  DownloadDownload
RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[MMF2] Aktywne światło
Autor Wiadomość
Aethera 
Bohaterka


Pojedynki: być może
Pomogła: 7 razy
Posty: 382

10120 Prestiż
Wysłany: 20-07-2008, 15:44   [MMF2] Aktywne światło

Co zrobić jeżeli nie chcemy by gracz wiedział co jest w pomieszczeniu obok dopóki się tam
niedostanie? Obiekty aktywne możemy ukryć ale tła... Duże obiekty aktywne odpadają, obciążają za bardzo grę. Ale jest coś co możemy śmiało wykorzystać.
Background System Box. Do dzieła!
1. Przygotowujemy pokój.
:arrow: Zmieniamy podłogę tak by ani jeden jej piksel nie był pod innymi obiektami tła. To
pewna niedogodność.
:arrow: Ustawiamy wszystkim obiektom tła Ink Effect na AND
:arrow: Tworzymy nowy Background System Box, ustalamy jego rozmiary na rozmiary pokoju.
:arrow: Edytujemy BSB, Fill Color ustawiamy na czarny(#000000), Border Color#1 i #2 na None
:arrow: Przestawiamy go poniżej obiektów tła w pokoju (Order->To Back)
Jak da się zauważyć czarne tło mimo że jest pod spodem, wyciemnia cały pokój.
2. Wprowadzamy interakcję.
Załóżmy że WARUNEK#1 to warunek po którym światło zostaje oświetlone, a
WARUNEK#2 to warunek przy którym światło zostaje zgaszone.
Załóżmy też że jedynym obiektem aktywnym jest Klucz, a Background System Box nazwaliśmy Pokoj1.

Kod:
Start of Frame-> Pokoj1: Set Fill Color to GetRGB(0, 0, 0)
->Klucz: Set ink effect to Semi-transparent (128%)

Powyższe zdarzenie wyciemnia pokój na początku poziomu i ukrywa klucz. GetRGB(x, y, z) to funkcja generująca kod koloru, gdzie x oznacza nasycenie czerwieni, y zieleni,a z niebieskiego koloru.

Kod:
WARUNEK#1 + Only one action when event loops -> Pokoj1: Set Fill Color to GetRGB(255, 255, 255)
->Klucz: Set ink effect to Semi-transparent (0%)

Powyższe zdarzenia natomiast przywracają światło w pokoju i ukazują klucz.

Kod:
WARUNEK#2 + Only one action when event loops-> Pokoj1: Set Fill Color to GetRGB(0, 0, 0)
->Klucz: Set ink effect to Semi-transparent (128%)

A podczas tego zdarzenia powracają ciemności.
3. Końcowe uwagi.
:arrow: Jeden pokój nie obciąża gry, ale nie sprawdzałam na większej ilości.
:arrow: Zaawansowany użytkownik poradzi sobie na pewno z płynnym przejściem z ciemności do jasności i odwrotnie (podpowiem że zamiast x y z w GetRGB(x, y, z) wystarczy wstawić odnośnik do liczników które można dynamicznie zmieniać.
:arrow: Nic nie stoi na przeszkodzie by zamiast pełnego światła ( GetRGB(255, 255, 255) )było na przykład światło czerwone ( GetRGB(255, 50, 50) ).
To na tyle!
_________________
Aka : Wolf / Crazy / Natie / Fallen Angel / Alicja / Mrs Evil
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

PSK Cytaty Klikibaza - kopia wszystkich klików Klikipedia - encyklopedia o tworzeniu gier Discord KlikCzat Zaproszenie Wielkie Muzeum Klikowe

Powered by phpBB modified by Przemo © 2003 phpBB Group