Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

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

Opublikowano

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ść

Opublikowano

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.

Opublikowano

ale chodzenie po mapie... no wiesz poruszanie się. czy poruszać wszystkie puntky w prawo, czy od p. środkowego na lengthdirach w kółko

 

Edit: no i jak to w kupe złączyć, żeby sie nie rozpadało ?...

Opublikowano

Przesuwasz środkowy.

 

Najlepiej, jakbyś połączył tylko te punkty, między którymi niema żadnego innego, dodał bezwładność, dobrą grawitację i powinno śmigać :D

Opublikowano

bezwładność ?? jak zrobić w GML-u (przypominam, że mam LITE'a ósemki)

 

 

..::offtop::..

sorki, że mnie tak długo nie było.

 

już wiem jak drawować - za pomocą trójkątów

Opublikowano

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

Opublikowano

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

Opublikowano

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)
Opublikowano

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

Opublikowano

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... :(

Opublikowano

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: (...)

Opublikowano

a poruszanie lewo prawo masz np. speed+=5 czy x+=5 ?

E:ojej te trzy kropki to link do pobrania? sory, zaraz sprawdze

E2:sprawdziłem u mnie wszystko wyglądało normalnie, nie wiem w czym problem

Opublikowano

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)

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