Skocz do zawartości

Zablokowane Trzęsienie sprita


Broccatee

Rekomendowane odpowiedzi

  • Filar Społeczności

GML
trzesienie=0;

do{

losuj = random(4); //sprawdz jak to działa dokładnie bo nie pamietam

switch(losuj){

case 0: x+=2; break;

case 1: x-=2; break;

case 2: y+=2; break;

case 3: y-=2; break;

}

trzesienie+=1;

}while(trzesienie<=5);

edit:

jeśli chcesz, żeby później powrócił na swoje poprzednie miejsce to dodaj:

GML
xbefore = x;

ybefore = y;

przed pętlą do

oczywiście wartości tylko przykładowe

Odnośnik do komentarza
Udostępnij na innych stronach

Step:

 

GML
x=x+xx

y=y+yy

 

if trzesienie=1

{

xx=random(10) -5

yy=random(10)-5

}

 

 

Jeżeli mocniejsze trzęsienie to:

 

GML
if trzesienie=2

{

xx=random(20) -10//-10 to połowa losowej liczby czyli jeżeli liczba losowa to 3 to xx=-7

yy=random(20)-10

}

 

Takie trudne?

Jeżeli nie idzie to daj swój kod bo coś pewnie zepsułeś.

Odnośnik do komentarza
Udostępnij na innych stronach

zauwazcie ze dajac x=x+xx gdzie xx jest liczba losowa, obiekt moze przemiescic sie w ktoryms kierunku bardziej niz w innych, co w pewnych przypadkach moze byc nieporzadanym efektem.

 

dlatego 'trzesienie' robcie w DRAW

 

draw_sprite(sprite,0,x+random(10)-5,y+random(10)-5)

Odnośnik do komentarza
Udostępnij na innych stronach

No to racja. Ale to tylko przykład był. I trzeba pamiętać aby obiekt miał taką samą maskę jak obiekt się trzęsący aby to jakoś wyglądało. Choć jeżeli poprawić mój kod aby sprawdzał kolizję z obiektami i podłożem może być bardziej realny. Bo jeżeli robić to jak piszesz to obrazek będzie właził na inne obiekty (ale tylko sprita więc nie będzie się zacinał)

To już zależy czy chce się mieć realnie czy nie.

Odnośnik do komentarza
Udostępnij na innych stronach

jeżeli robić to jak piszesz to obrazek będzie właził na inne obiekty (ale tylko sprita więc nie będzie się zacinał)

 

x=x+xx

y=y+yy

- w tym wypadku operujemy bezposrednio na wspolrzednych co powoduje przesuwanie sie calego obiektu

 

- a w tym:

draw_sprite(sprite,0,x+random(10)-5,y+random(10)-5) nie zmieniamy w żaden sposob wspolrzednych obiektu wiec 'trzesie' sie tylko rysowany sprite.

 

o to mi chodzilo...

Odnośnik do komentarza
Udostępnij na innych stronach

No to wiem (wyobraźnię mam). I w takiej postaci jest to dobre ale nie realne. Bo jeżeli sprawdzać kolizję obiektów można by ustalać w którą stronę może się trząść i by nie właziło na inne obiekty.

Ale twoje spostrzeżenie jest jak najbardziej trafne.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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