Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Witam. Chciałbym zaprezentować przykład jak zrobić GUI w Game Maker. Narazie dałem obsługę okien, buttonów i textboxów ale jeśli się wam spodoba mogę dodać więcej rzeczy :]

 

Screen:

screenshot10014ad3.jpg

screenshot102.jpg

 

Download:

(Najnowsza wersja, narazie nowszych nie będzie)TUTAJ

 

Proszę o komentarze :]

 

Skowron1993

Opublikowano

Można wpisać tekst dłuższy niż pole tekstowe. Ogólnie to może małe zastosowanie w tym jest, ale jeśli to mocno rozwiniesz to przyda się w grach MMO chociażby przy tworzeniu konta itp.

Opublikowano

PRAWIE idealne pod względem technicznym. Brakuje do szczęścia tylko automatycznego generowania i zwracania ID danej kontrolki przez funkcje create. Nie może być tak, że ciągle podajesz wymyślone wcześniej ID. Ani to praktyczne, ani profesjonalne. Jeśli to poprawisz - będzie idealnie.

 

P.S. Dodaj animacje =) .

Opublikowano

@Sernat: Na początku tak było - była lista kontrolek, zwracało automatycznie ID jednak przy usuwaniu krzaczyło się i stwierdziłem że można by dać możliwość nadania ID :] Myślę nad powrotem do automatycznego zwracania ID + Automatycznego rysowania wszystkich elementów :]

Opublikowano
@Sernat: Na początku tak było - była lista kontrolek, zwracało automatycznie ID jednak przy usuwaniu krzaczyło się i stwierdziłem że można by dać możliwość nadania ID :] Myślę nad powrotem do automatycznego zwracania ID + Automatycznego rysowania wszystkich elementów :]

Oczywiście, że to lepsza opcja. Później dodajesz do kontrolek zmienne typu "hide" (true/false) i wszystko staje się logiczne, łatwe w użyciu.

Opublikowano
Oczywiście, że to lepsza opcja. Później dodajesz do kontrolek zmienne typu "hide" (true/false) i wszystko staje się logiczne, łatwe w użyciu.

 

Taka opcja istnieje

GML
WindowOpen( id ) i WindowClose( id )
:) Przepisuje GUI na nowo, będzie o wiele prostsze :P
Opublikowano

Dziś jeszcze może trochę popiszę, jutro zacznę od około 15-17 więc pewnie w poniedziałek będzie gotowe :) Teraz cała filozofia polega na dodaniu nowego elementu GUI( okno = WindowCreate( ... ); ) i tyle :] Wszystko wykonuje się automatycznie i nie potrzeba więcej pisania, ewentualnie jakieś modyfikacje typu zmiana textu :]

Opublikowano

Jestem w trakcie przepisywania. Dodałem (jeszcze nie do końca działający)suwak, przepisałem wszystkie kontrolki( prócz checkboxa ) i jak narazie działa :) Checkboxa i kilka nowych kontrolek napisze jutro/po jutrze, lecz jeśli ktoś chciałby zaopatrzyć się w nową, odmienioną wersję to:

 

DOWNLOAD:

KLIK!

 

Na razie kontrolki rysują się nawet poza oknem, ale... to się poprawi :D

Opublikowano

Chodzi ci o kolejność wyświetlanych okienek i kontrolek na niej? :P Myślę że globalna zmienna ( global.guiwindownow = ostatnio najechane okienko ), rysowanie wszystkiego po kolei, bez okienka o ID[ global.guiwindownow ] i elementów do niego podłączonych, następnie narysowanie samego okna od tym id i tylko jego elementów powinno załatwić sprawę :)

 

 

EDIT: Miałem dziś być cały dzień poza domem, spóźniłem się na pociąg i nie wypaliło, nawet się nie zmartwiłem :D Zrobiłem taki pseudo depth, działa :) Przy odrobinie szczęścia skończę dziś te GUI.

Opublikowano

screenshot10014ad3.jpg

Tak teraz wygląda gui :] Niby nic się w wyglądzie nie zmieniło, ale w kodzie wiele :] W miarę szybko mi to idzie, mam problem w suwakiem( konkretnie jak by tu rozwiązać problem z elementami wysuwającymi się za okno... nie rysować ich całych... popracuję nad tym ) ale mam nadzieję że niebawem go skończę :] Tymczasem daję wam do sprawdzenia nową wersję.

 

DOWNLOAD:

KLIK!

 

Paczka zawiera:

-Plik *.exe dla testu

-Plik *.gmk z przykładem użycia( efekt jak ze screena )

-Plik Gui.gml - Skrypty( 36kb ^.^ )

-Plik readme.txt w którym wszystko opisałem

 

 

Proszę o komentarze,

Skowron1993.

 

Proszę o opinie :]

Opublikowano
mam problem w suwakiem( konkretnie jak by tu rozwiązać problem z elementami wysuwającymi się za okno... nie rysować ich całych... popracuję nad tym )

Może rysuj elementy na surface i go wyświetlaj. Dla każdego okna osobny surface.

 

Edit: hah szybszy :P

Opublikowano
mam problem w suwakiem( konkretnie jak by tu rozwiązać problem z elementami wysuwającymi się za okno... nie rysować ich całych... popracuję nad tym )

Rysuj te elementy na surface'u, a potem surface'a na ekranie. Elementy, które będą wystawać poza surface'a nie zostaną narysowane na ekranie.

@up: :rolleyes:

Pisałem jedną ręką : /

  • 2 tygodnie później...
Opublikowano

Nie rozwijam już tego GUI :) Dałem w miare wyglądającą wersję i chyba starczy :P Teraz pracuję nad dllką dla gm'a( wątki, dźwięki( większe możliwości ), konsola systemowa, lepsza obsługa ini itp )

Opublikowano

najpierw show_message, a potem:

 

GML
___________________________________________

ERROR in

action number 1

of Create Event

for object MegatronControl:

 

Error defining an external function.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...