Skocz do zawartości

Żel, Woda w 2D


Lordis

Rekomendowane odpowiedzi

Witam!

 

Mam następujące pytanie. Czy jest możliwość zrobienia imitacji wody w Gm z fizyką "GMPhysics" i tu nie chodzi mi o wodę jaka już jest w tych bibliotekach.

Nie wiem jak to wytłumaczyć więc pokaże na screenach i filmiku.

Czerwone kulki są to obiekty, które by stanowiły "rogi" wody, na których by się kończyła szata graficzna.

 

A konkretnie chodzi mi czy da się zrobić taką szate graficzną(niebieskie tło kończące się za czerwonymi kulkami), jak tak to jak to zrobić?

Szkielet Wody:

01.jpg

 

Woda z szatą:

02.jpg

 

 

Fizyka uginania się, rozrywania:

03.jpg

 

A o to film, który pokazuję narazie szkieletową wodę w praktyce:

 

Woda 2D

Odnośnik do komentarza
Udostępnij na innych stronach

jak chcesz zrobić to jak ten koleś na filmie, to po prostu zrób kulki o większym sprajcie niż masce.

możesz też spróbować napisać jakieś łączenie w drawie.

w każdym wypadku nie licz na wybitną wydajność

Odnośnik do komentarza
Udostępnij na innych stronach

Heh ten koleś co zrobił ten filmik to ja :D

 

Ja zrobiłem tą wode lecz właśnie z kuleczek o większym sprite lecz tak jak zauważyłeś muli to kompa strasznie już około 250 kuleczek czyli taki zbiorniczek jak na filmie muli kompa niesamowicie.

więc dlatego chce zrobić "łączenie" albo rysowanie "szaty" by zmniejszyć ilośc tych kulek i by realniej wyglądało. Gdy te kulki spadają w ogóle nie przypominają wody :P dlatego chce zrobić coś z tym.

Odnośnik do komentarza
Udostępnij na innych stronach

bezwladnosc? zwykla sila ktora kaze poruszac obiekt mimo iz sie "zatrzymal". jak nadawac obiektowi bezwladnosc? przesuwajac obiekt o wektor bezwladnosci co step, a obliczyc sama bezwladnosc mozna na kilka sposobow. Pierwszy to bezwladnosc poruszania, czyli do wektora bezwladnosci dodajesz wektor wyliczany odejmujac pozycja aktualna od poprzedniej; bezwladnosc uderzenia to przy kolizji zapamietujesz pozycje obecna, obliczasz przesuniecie obiektu po kolizji i odejmujesz od tego ta zapamietana wartosc i dodajesz ja do wektora bezwladnosci. problem robi sie z ograniczeniem sily bezwladnosci, otoz jak sie domyslacie, dodajac bezwladnosc poruszania co step (wedle pierwszego sposobu wyzej podanego) obiekt nigdy sie nie zatrzyma, dla tego dodatkowo po przesunieciu obiektu o wektor bezwladnosci nie bedziemy tego wektora zerowac, tylko zmniejszymy go o wartosc tarcia. Maly kodzik:

 

GML (Create)
// wektor bezwladnosci

inertX = 0

inertY = 0

// tarcie

frict = 1.05

 

GML (Step)
// przesuniecie obiektu o wektor bezwladnosci

x += inertX

y += inertY

// zwalnianie przy uzyciu tarcia

inertX /= frict

inertY /= frict

if( inertX < frict && inertX > -frict) inertX = 0

if( inertY < frict && inertY > -frict) inertY = 0

 

// dodanie sily bezwladnosci poruszania

inertX += x - xprevious

inertY += y - yprevious

 

pisane w locie bez GMa wiec wartosc tarcia do ewentualnej poprawki

Odnośnik do komentarza
Udostępnij na innych stronach

tam jest podobnie. pokombinuje cos z tym, zobaczymy jaki stopien realizmu wody da sie osiagnac.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie chciałeś tam przypadkiem zmniejszać prędkości odejmując wartość tarcia (a nie dzieląc)? Teraz będzie przy wysokich prędkościach szybko zwalniał, przy niskich coraz wolniej.

Na dodatek strasznie topornie się zatrzyma - ot taka symulacja od prędkości 1.5

1.5 // /1.05

1,43

1,36

1,3

1,23

1,18

1,12

1,06

0 //teraz by było 1,01, ale predkosc zostaje zmniejszona do 0, bo jest < niz wartosc tarcia, czyli 1.05

 

Także chyba chciałeś tam wstawić

GML
inertX -= frict*sign(inertX);

 

No i tak dla symbolicznego czepienia się ;) :

GML
if( abs(inertX) < frict )
wygląda trochę lepiej niż
GML
if( inertX < frict && inertX > -frict)
Odnośnik do komentarza
Udostępnij na innych stronach

nie, nie chcialem, swiadomie to napisalem, w tarciu to ma sens, w koncu wiem co robie. intensywnosc zwalniania zalezy tutaj wlasnie od tego im tarcie jest wieksze od 1

Odnośnik do komentarza
Udostępnij na innych stronach

znalazłem przyczynę zawieszenia się komputra... bezwładność - było w tym coś, co zawiesiło test przy najmniejszej próbieruszenia się w osi X, wywaliwszy instancję tak daleko, jak się dać powinno i dalej za rooma... :(

Odnośnik do komentarza
Udostępnij na innych stronach

chodziło o gre... :/

POŁĄCZONO:

ma ktoś jakiś pomysł ??

POŁĄCZONO:

Proszę Was o pomoc. Otóż, gdy skaczę, wszystko jest OK, ale z poruszaniem lewo-prawo i kombinacjami (u mnie są tylko schody na razie), to glut przykleja się do podłoża i koniec bajki... Jeśli ktoś mógłby mi poradzić, bądź pomóc rozwiązać problem: (...)

Odnośnik do komentarza
Udostępnij na innych stronach

x+=5 ... wcześniej była tam jeszcze bezwładność, ta od ???, i wtedy zamulało... wywaliłem bezwładność i się okazało, że glut się przykleja do podłogi. Nie wiem, jak to rozwiązac :(

 

Edit:

 

trzy kropki są dla mnie standardem dla linków wewnętrzych (gmclan.org)

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