Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 01.03.2018 uwzględniając wszystkie działy

  1. Widzisz, są dwa sposoby na kolizje: 1. Wszystko sie rusza jak chce, a jesli wykryje ze cos w cos wlazlo, to wypycha jedna z rzeczy zeby sie juz nie stykaly. 2. Wszystko sprawdza czy moze sie ruszyc bez kolidowania z innymi obiektami. Jezeli nie ma kolizji, ruch jest dozwolony. Ty korzystasz z metody 1szej, która jest...słaba, żeby się nie wyrażać, a w każdym razie ja nie jestem jej fanem. Proponuję Ci zrobić ruszanie się i kolizje na nowo, używając metody #2, a ruszanie się po skosach wyjdzie Ci automagicznie samo z siebie po dodaniu drobnych poprawek. do kodu poruszania się. Przykładowo, ruch w prawo może wyglądać na jeden z dwóch poniższych sposobów: if place_free(x+5,y) x+=5; //Metoda 1sza, dziala na wszystkie obiekty SOLID if !place_meeting(x+5,y,Parent_Obiektow_Solidnych) x+=5; //Metoda 2ga, dziala na obiekt Parent_Obiektow_Solidnych i ich wszystkie dzieci Dla płynnego poruszania się możemy użyć pętli for: for(var i=0;i<5;i++){ if !place_meeting(x+1,y,Parent_Obiektow_Solidnych) x+=1; } Nastepnym krokiem jest dodanie "co jeśli jednak jest kolizja" czyli: for(var i=0;i<5;i++){ if !place_meeting(x+1,y,Parent_Obiektow_Solidnych) x+=1; else{ //Co jeśli jest kolizja na x+1 } } Ten kod musimy wypełnić sprawdzeniem czy jeżeli podniesiemy się o Y pikseli do góry czy nie będzie kolizji. W ten sposób powstaje ruch po skosie! for(var i=0;i<5;i++){ if !place_meeting(x+1,y,Parent_Obiektow_Solidnych) x+=1; else{ var _max = 4; //Maksymalny skos to 4 piksele do gory i 1 piksel w bok. Zamien na dowolna liczbe ktora Ci pasuje. for(var j=0;j<_max;j++){ if !place_meeting(x+1,y-j-1,Parent_Obiektow_Solidnych) //Jezeli znalazlo wolna przestrzen { x+=1; y+=j-1; break; //Przerwij te petle bo juz znalezlismy skos. } } } } Takie ostrzezenie, pisze to 100% z głowy więc może nie działać, w najgorszym wypadku po małych poprawkach powinno działać. Edit: Ciagle zapominam ze nie ma juz tagu gml. Edit2: Poprawiono kod na dzialajacy i poprawiono czytelnosc kodu dla potomnych i inncyh zagubionych duszyczek szukajacych rozwiazania.
    2 punkty
  2. Czołg Krymski

    Galeria Grafik

    a ja za to odkrywam fizykę w Blenderze
    2 punkty
  3. Penguin

    Problem z "wchodzeniem pod górkę"

    Ok, już wszystko ogarnąłem, dziękuję ci vader
    1 punkt
  4. Demo do sciagniecia (zip zawiera exe): http://storage.psichix.io/MultipassEmissive.zip (w ruchu wyglada to super). Pobawilem sie troche i zrobilem nastepujace rodzaje obiektow emitowan swiatla: - statyczny (zawsze swieci); - dynamiczny (mozna wlaczac i wylaczac swiecenie poprzez zmienna) - dynamiczny pulsujacy (obiekt zmienia swoje natezenie emisji swiatla, mozemy to w pelni kontrolowac, miast robic pulsowania - ono jest tylko dla pokazania dynamiki); Ponadto samemu efektowi mozna kontrolowac skale rozmycia, oraz intensywnosc globalna emisji swiatla. dostepne sa 3 warianty shadera samego rozmywania, by moc dobrac odpowiedni pod konkretny stopien optymalizowania (im "silniejszy" blur shader, tym lepsza jakosc, ale nieco slabsza wydajnosc, choc i tak smiga to bez problemu, wlasnie dzieki podejsciu multipassowemu :P) Pytania i sugestie pisuj tutaj, ale same detale tranzakcji zalatwimy juz emailowo Screen z demka:
    1 punkt
Ten Ranking jest ustawiony na Warszawa/GMT+01:00
×
×
  • Dodaj nową pozycję...