Skocz do zawartości

"trzęsący" się ekran...


pivot18

Rekomendowane odpowiedzi

create:

GML
dir = "left"

global.force += 15

time = 15

alarm[0] = 1

 

step:

GML
if global.force <= 0 then instance_destroy()

 

if dir = "left"

{

view_xview[view_current] = -global.force

global.force -= 1

dir = "right"

alarm[0] = 2

exit

}

 

if dir = "right"

{

view_xview[view_current] = global.force

global.force -= 1

dir = "left"

alarm[0] = 2

exit

}

 

destroy:

GML
view_xview[view_current] = 0
Odnośnik do komentarza
Udostępnij na innych stronach

Za dużo kodzenia....

Na waszym miejscu walnął bym jakiś obiekt, tzw. pseudo kamerę, która po prostu lata za graczem. Trzęsienie by polegało na dodawaniu 'syfu' do wartości współrzędnych tej kamerki, czyli jakiegoś random'a lub inne cudo. W wielu gierkach używałem tego czegoś, i przyznam że się wybornie sprawdza.

Odnośnik do komentarza
Udostępnij na innych stronach

GML (Create)
dir=0

 

GML (Step)
if dir=0

{

dir=90

view_xview[0]=view_xview[0] + 5;

}

if dir=90

{

dir=180

view_yview[0]=view_yview[0] - 5;

}

if dir=180

{

dir=270

view_xview[0]=view_xview[0] - 5;

}

if dir=270

{

dir=0

view_yview[0]=view_yview[0] + 5;

}

 

Napisz czy działa tak jak chcesz

Odnośnik do komentarza
Udostępnij na innych stronach

Generalnie sprawa wygląda całkiem prosto. Wszystkie jednak dane tu przykłady nie uwzględniają wypadku, że pozycja ekranu dojdzie w końcu do liczby uciekającej nieco od pierwotnej wersji. Powinno to wyglądać mniej więcej tak:

GML
sx = view_xview;

sy = view_yview;

To, gdy zaczyna się wariowanie. Podczas jego trwania:

GML
view_xview = sx + random( rozrzut ) - random( rozrzut );

view_yview = sy + random( rozrzut ) - random( rozrzut );

rozrzut += 1; // mozna wywalic

A po zakończeniu:

GML
view_xview = sx;

view_yview = sy;

Wynik możesz oczywiście zaokrąglić funkcją round(), by uniknąć niechcianych "zamazanych pikselków". To tyle.

 

Przykład: https://gmclan.org/up4218_11_example.html

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