Skocz do zawartości

Widoki i półprzeźroczysty panel


TO_mek

Rekomendowane odpowiedzi

Witam!

Mam pytanie dotyczące views i efektu panela takiego jak w DiabloII czyli duży room, panel w stałym miejscu na ekranie (na dole) o nieregularnych kształtach a to co jest w miejscu wcięć przeźroczyste i w momencie kiedy ekran się przesuwa tam pojawia się też zawartość rooma. Mam nadzieję że wiadomo o co chodzi.

W prosty sposób można to uzyskać na jednym view, podpinając odpowiedni obiekt (grupę obiektów) panela z odpowiednio wyciętą grafiką i ustawić x,y do współrzędnych widoku.

Ja chciałbym to zrobić nieco inaczej jeśli się da. Narysować panel na stałe w niewidocznym miejscu rooma, zdefiniować tam drugi widok (nr 1) i wyświetlać go na dole widoku nr 0 ale też w taki sposób by widok nr 1 (panel) był przeźroczysty i w miejscu gdzie nie ma grafiki pokazywało się ruchome tło rooma. Tylko czy taki efekt przeźroczystości uzyskam w ten sposób (przeźroczysty widok na widoku)?

Odnośnik do komentarza
Udostępnij na innych stronach

W skrócie, chciałbyś narysować coś co będzie widoczne tylko w określonym view, a nie we wszystkich?

Musisz rysować takie rzeczy koniecznie w zdarzeniu Draw przy pomocy różnych funkcje zaczynających się na "draw_", a nie przy pomocy obiektów za sprite'ami.

Wtedy przy pomocy warunku w tym zdarzeniu:

GML
if(view_current==X)

{

//TU COŚ RYSUJESZ

}

Sprawiasz, że rysowane będzie coś tylko we view o numerze X.

Odnośnik do komentarza
Udostępnij na innych stronach

Witam!

Mam pytanie dotyczące views i efektu panela takiego jak w DiabloII czyli duży room, panel w stałym miejscu na ekranie (na dole) o nieregularnych kształtach a to co jest w miejscu wcięć przeźroczyste i w momencie kiedy ekran się przesuwa tam pojawia się też zawartość rooma. Mam nadzieję że wiadomo o co chodzi.

W prosty sposób można to uzyskać na jednym view, podpinając odpowiedni obiekt (grupę obiektów) panela z odpowiednio wyciętą grafiką i ustawić x,y do współrzędnych widoku.

Ja chciałbym to zrobić nieco inaczej jeśli się da. Narysować panel na stałe w niewidocznym miejscu rooma, zdefiniować tam drugi widok (nr 1) i wyświetlać go na dole widoku nr 0 ale też w taki sposób by widok nr 1 (panel) był przeźroczysty i w miejscu gdzie nie ma grafiki pokazywało się ruchome tło rooma. Tylko czy taki efekt przeźroczystości uzyskam w ten sposób (przeźroczysty widok na widoku)?

 

Odznacz w zakładce background> draw background color. Bo to kolor tego rysowanego tła zasłania ci transparent.

Ale imo to jest durny sposób wiec zrób to co mówi Platyna.

Odnośnik do komentarza
Udostępnij na innych stronach

Odznacz w zakładce background> draw background color. Bo to kolor tego rysowanego tła zasłania ci transparent.

Ale imo to jest durny sposób wiec zrób to co mówi Platyna.

 

 

 

Nie do końca się zrozumieliśmy. Nie chcę niczego rysować ręcznie ale mieć nałożony panel graficzny z kilkoma "ikonami" w stałym miejscu na ekranie (lewy dolny róg) ale taki aby był wycięty tak jak w podanym przykładzie w Diablo II i transparentny czyli to co jest na przewijalnym ekranie gry pojawiało się także pod panelem.

Wyłączyłem background color, ustawiłem view[1] (ten od panela) poza obszarem rooma głównego i wkleiłem kilka nieruchomych obiektów na ten widok i działa teraz tak jak powinno.

 

I moim zdaniem jest to dużo lepsze (szybsze) niż gdybym zrobił to na ruchomym obiekcie podążającym za zmieniającym położenie widokiem głównego ekranu (view[0]).

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem jak wygląda panel w Diablo, a link, k?óry podałeś nie działa. Daj innego sceena.

I moim zdaniem jest to dużo lepsze (szybsze) niż gdybym zrobił to na ruchomym obiekcie podążającym za zmieniającym położenie widokiem głównego ekranu (view[0]).

Najlepiej jakbyś tak jak mówię rysował ten panel w draw na pozycji viewa, a nie jakieś kombinowanie jak koń pod górę, którego ni cholery zrozumieć się nie da o co kaman. ;)

Nie ma znaczenia czy twój panel się przesuwa z viewem czy nie. Ważne, że jest obiektem. A rysowanie w draw jest szybsze od obiektów i nie wymaga babrania się z dodatkowym viewem.

Odnośnik do komentarza
Udostępnij na innych stronach

Oto ci chodzi? https://gmclan.org/up539_12_panel.html

panel jest umieszczony za roomem i na niego spogląda view 1, który nakłada się na view 0. Jeżeli tak to się zrozumieliśmy :P

 

To jest głupia metoda, bo jak gdzieś nie dasz czegoś co będzie zastępować background to ci się będą pojawiały smugi.

Odnośnik do komentarza
Udostępnij na innych stronach

Oto ci chodzi? https://gmclan.org/up539_12_panel.html

panel jest umieszczony za roomem i na niego spogląda view 1, który nakłada się na view 0. Jeżeli tak to się zrozumieliśmy :P

 

To jest głupia metoda, bo jak gdzieś nie dasz czegoś co będzie zastępować background to ci się będą pojawiały smugi.

 

Dokładnie o to mi chodzi. Teraz nie bardzo kumam o co chodzi z tymi smugami? Mam room 5000x5000 który wszędzie ma grafikę tła, view[0] 1024x768 przypięty do obiektu hero. Drugi view[1] jest umieszczony na stałe w lewym dolnym rogu ekranu (1024x100) i zawsze wskazuje stałe miejsce poza roomem gdzie będą wyświetlane informacje (życie, energia, broń itp.) oraz grafika panela (nie prostokątną tylko "strzępiastą", transparętną). Hero z view[0] nigdy nie wyjedzie poza obszar rooma więc zawsze będzie jakieś tło na ekranie a w związku z tym i pod panelem (pod view[1] w miejscu gdzie panel jest transparentny).

I mam nadzieję że to działać będzie lepiej niż gdybym panel przypiął jako ruchomy obiekt do view[0].

 

A co do rysowania poprzez Draw skomplikowanego panela to jakoś sobie nie mogę tego wyobrazić, mam narysować pixel po pixelu cały panel za pomocą kresek i kropek?! Druga sprawa przecież rysowanie przez Draw jest okropnie wolne, zawsze tak w GMLu było i nie raz wyświetlanie tekstów z Draw "zabijało" fpsy.

 

 

Poprawny adres screena (zresztą w razie czego to dowolny screen z googli z Diablo II):

http://www.nbnews.pl/wp-content/uploads/20...11diabloII1.jpg

link

Odnośnik do komentarza
Udostępnij na innych stronach

A co do rysowania poprzez Draw skomplikowanego panela to jakoś sobie nie mogę tego wyobrazić, mam narysować pixel po pixelu cały panel za pomocą kresek i kropek?! Druga sprawa przecież rysowanie przez Draw jest okropnie wolne, zawsze tak w GMLu było i nie raz wyświetlanie tekstów z Draw "zabijało" fpsy.

Pixel po pixelu? A nie słyszałeś nigdy o czymś takim jak draw_sprite(); ? Po za tym co to za brednie, że draw jest wolne? Przecież tak czy siak musisz ten panel narysować! Jeśli robisz go jako obiekt to przecież ten obiekt musi sobie tego sprite'a też narysować! I masz masę zbędnych obiektów podczas gdy jeden mógłby ci w draw narysować cały panel.

Odnośnik do komentarza
Udostępnij na innych stronach

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ę...