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

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[Construct] Jak zrobić wygaszacz?
Autor Wiadomość
Minty 
Stwórczyni
omc dr fizyki


Pojedynki: być może
Pomogła: 259 razy
Posty: 3447

33795 Prestiż
Wysłany: 17-12-2008, 20:18   [Construct] Jak zrobić wygaszacz?

Ci, którzy korzystają z Construct, zapewne zauważyli dysfunkcję wbudowanej opcji zapisu dzieła jako wygaszacz. Ale jest na to rada! Częściowa, ale zawsze. Może z początku omówię jej niedoróbki:
- zrobiony tak wygaszacz ma dziwną nazwę w aplecie wyboru wygaszacza w Windows. U mnie była to "3", mimo innej nazwy pliku i gry w ustawieniach.
- podgląd w tymże aplecie źle działa (włącza wygaszacz, zamiast robić jego mały podgląd).

Jeśli nie jest to dla Ciebie przeszkoda (chyba nie?), to metoda jest prosta:

1. Przygotuj plik wygaszacza i otwórz go.

2. W panelu po prawej (Layout Properties) wybierz Application Properties. W kategorii Runtime Properties zaznacz opcję Fullscreen (pełny ekran) i wybierz rozdzielczość przez Window Width/Height. Najlepiej 1024x768 - to najpopularniejsza rozdzielczość. Jeśli pole gry będzie mniejsze, to dookoła będzie czarna ramka. Jeśli chcesz, żeby wygaszacz operował na całym ekranie, to musisz albo rozciągnąć pole, albo zmniejszyć rozdzielczość do jego rozmiarów.

3. Wygaszacz powinien znikać. Dodaj do programu nowy obiekt, Mouse & Keyboard. Przejdź do edytora zdarzeń (Event Sheet Editor) i...

4. Dodaj zdarzenie ustawiające na starcie dwie zmienne, nazwijmy je xmouse i ymouse, na pozycję X,Y myszy poprzez MouseKeyboard.AbsMouseX i MouseKeyboard.AbsMouseY. Nie stosuj wbudowanych w Construct wartości pozycji myszy, bo pojawią się problemy przy zmianie rozdzielczości. Te akcje zabezpieczą wygaszacz przed zniknięciem od razu po włączeniu. Warto też na starcie ukryć kursor (MouseKeyboard> Set cursor visible> Invisible).

5. Stwórz zdarzenia z warunkami MouseKeyboard> On any key pressed i On any click (osobne! nie możesz stosować OR, taki dziwny błąd aktualnej wersji), do obu daj akcję System> (Application)> Close. Gdy się coś wciśnie, wygaszacz się wyłączy.

6. Dodaj zdarzenie porównujące (System> (Values)> Compare) pozycję myszy MouseKeyboard.AbsMouseX ze zmienną, która była ustawiana w punkcie 4.: global('xmouse') - sprawdzana ma być ich nierówność. Skopiuj ten warunek dla pozycji Y i wstaw pomiędzy warunki OR. Możesz też zrobić dwa osobne zdarzenia, nie ma to większego znaczenia. Akcja - System> (Application)> Close. Sprawi to, że wygaszacz zniknie, gdy pozycje przed i po się różnią, bo to oznacza ruch myszą.

7. Następnie (niżej) dodaj zdarzenie które zawsze (Always) będzie ustawiało zmienne xmouse, ymouse na pozycję myszy, tj. MouseKeyboard.AbsMouseX i MouseKeyboard.AbsMouseY. To zapewni sens zdarzeniu z punktu 6.

Najlepiej spróbować na przykładzie od Scirra: Plasma Demo. Dla tego przykładu końcowe zdarzenia powinny wyglądać tak.

Ale to nie koniec, przecież zapisywanie jako wygaszacz nie działa! Toteż:

8. Zapisz swoje dzieło normalnie, jak grę.

9. Zmień rozszerzenie pliku z .exe na .scr.

Voilà!
 
     
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