Skocz do zawartości

Pikselizacja


hopek

Rekomendowane odpowiedzi

Hej

Mam taki problem, chciałbym żeby w mojej gierce ekran pikselizował się (bądź inny efekt króry pogarsza widoczność), gdy ludzika walnie coś naprawdę mocno, lub zostanie porażony prądem itd.

Wie ktoś jak coś takiego zrobić. Z góry dziękuję!

(mam nadzieję że nikt inny nie stworzył podobnego posta)

Odnośnik do komentarza
Udostępnij na innych stronach

Zmieniasz rozmiary (sprite_xscale, sprite_yscale), na nie zgodne z oryginalnymi proporcjami.

No cóż.....

nie za bardzo mi o to chodziło...

Chodzi mi o taki efekt by cały ekran stawał się mało czytelny, nie same objekty

Odnośnik do komentarza
Udostępnij na innych stronach

Spróbuj narysować prostokąt na cały ekran w jakimśtam kolorze (np. czerwony jak walnie, biały jak prąd) z alphą zależną od siły walnięcia.

Dzięki może tak zrobię,

jednak wolałbym bardziej efekt rozmazania lub pikselizacji ekranu, umie ktoś coś takiego zrobić?

Odnośnik do komentarza
Udostępnij na innych stronach

@Huder:

To ograniczy mu widoczność.

 

@Hopek:

Albo zmień rozdzielczość na dużo niższą i rysuj z image_xscale i image_yscale.

 

np masz rozdzielczość 1280x1024

zmieniasz ją na 160x128

a image_xscale i image_yscale na 0.125

 

Odpowiednio musisz też rysować w innym miejscu tj. 8x bliżej środka screena niż powinno być.

 

P.S. do zmiany rozdzielczości przyda Ci się

GML
display_set_size( width,height )

Edit:

post #501 równo o 20:00

Odnośnik do komentarza
Udostępnij na innych stronach

:/ przed chwilą zrobiłem ci taki efekt ale skoro mówisz że nie masz pro to ci nie zadziała.

Dobra może komuś się przyda: https://gmclan.org/up539_12_pixelowanie_ekranu.html

 

Bez pro będzie cienko bo większość ograniczeń wersji lite tyczy się grafiki.

Odnośnik do komentarza
Udostępnij na innych stronach

Możesz też bobawić się zmiennymi dot. portów viewa i samego viewa.

bawiłem się nimi jednak nie wiem jak zrobić by zmieniając te zmienne w czasie gry ekran pokazywał wciąż viewa tej samej wielkości

(Jak to robi gdzy te zmienne zmienia się w ustawieniach rooma)

 

PS: Mam nadzieję że rozumiesz co powiedziałem,bo dość dziwnie to napisałem

Odnośnik do komentarza
Udostępnij na innych stronach

W taki sposób można uzyskać tylko efekt blura i do tego tylko na full screenie.

 

Dając porty mocno mniejsze niż szerokość i wys viewa, jeżeli w opcjach zaznaczysz 'Full scale'.

No ale jak mówię w oknie to nie zadziała.

 

Edit:

No chyba żeby coś pokombinować z funkcjami od okna np. window_set_size(w,h).

Zmniejszyć okno ustawieniami portów i potem okno jakoś powiększyć funkcjami window_*

Odnośnik do komentarza
Udostępnij na innych stronach

Stwórz sobie obj_pixel_blur;

 

W create:

GML
t_surf = surface_create(room_width,room_height);

d_surf = surface_create(room_width,room_height);

 

p_amt = 1; // siła

p_plus = 0.05; // do animacji

p_max = 10; // max do animacji

surface_set_target(d_surf);

draw_clear_alpha(0,0);

screen_redraw();

surface_reset_target();

 

W end step:

GML
texture_set_interpolation(false); // jak ustawimy interpolacje wyjdzie na blur

surface_set_target(d_surf);

screen_redraw();

 

 

surface_set_target(t_surf);

draw_surface_ext(d_surf,0,0,1/p_amt,1/p_amt,0,c_white,1); // dzielenie

surface_set_target(d_surf);

draw_surface_ext(t_surf,0,0,1*p_amt,1*p_amt,0,c_white,1); // mnozenie

surface_reset_target();

 

 

 

if p_amt < p_max p_amt += p_plus; // jak chcesz prosta animke

//p_amt = 5</span>

 

w droł:

GML
draw_surface_ext(d_surf,0,0,1,1,0,c_white,1);
Odnośnik do komentarza
Udostępnij na innych stronach

przecież on NIE MA WERSJI PRO, napisano już o tym niejednokrotnie :<

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