Ice Cube Opublikowano 23 Lutego 2014 Udostępnij Opublikowano 23 Lutego 2014 czesc czy idzie zrobic kolizje obiektu np.z KOLOREM CZARNYM z background?? podaje link z przykladem,gdzie w background jest białe tło,po ktorym chciałbym aby wszystko sie poruszało i sa czarne linie,z którymi chciałbym aby wszystko wchodzilo w kolizje http://wyslijto.pl/plik/f1k67dwpum przyklad colission background jeżeli ktoś jest w stanie niech odeśle gotowy plik z kolizją,jestem bardzo ciekaw czy idzie takie cos zrobic pozdrawiam :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Madness Opublikowano 23 Lutego 2014 Udostępnij Opublikowano 23 Lutego 2014 Poszukaj sobie w dokumentacji funkcji która zwraca kolor pixel'a z danych współrzędnych (jeśli się nie myle, to istnieje taka funkcja, jak nie to zawsze możesz poszukać jakichś rozszerzeń do gm'a.), a potem sprawdzaj czy pod/nad tobą jest ten twój czarny pixel, albo po lewej/prawej od cb. Jeśli tak to zaszła kolizja + pasuje info z jakiejż to strony ona zaszła. Najlepiej sprawdzać to zanim w ogóle poruszysz obiektem ( coś jak if( place_free(x,y) ) ). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 23 Lutego 2014 Udostępnij Opublikowano 23 Lutego 2014 Po pierwsze, nie powinno się sprawdzać kolizji z tłami. Po drugie draw_get_pixel() jest najwolniejszą funkcją jaka istnieje w GM. Twórz obiekty z którymi będzie kolizja. Będzie to o wiele prostsze, będziesz mógł je dezaktywować i modyfikować podczas gry. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 23 Lutego 2014 Autor Udostępnij Opublikowano 23 Lutego 2014 wiem że to bardzo niepopularna metoda,ale tylko ona wchodzi w gre ze wzgledu na to iż mapa bedzie bardzo skomplikowana i zawiła,ten przykład do ktorego podałem linka to tylko bardzo, bardzo wielkie uproszczenie i naświetlenie tematu czy możecie odesłać moj program z prostym przykładem funkcji draw_get_pixel(),nie używałem jej jeszcze,chciałbym zobaczyc jak dziala w praktyce pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 23 Lutego 2014 Udostępnij Opublikowano 23 Lutego 2014 Nie ma czegoś takiego jak prosty przykład draw_get_pixel(). Ta funkcja wykonuje się 0.1s. Sprawdzanie tak kolizji jest debilnym sposobem. Zapomnij o tym. Najprostszym sposobem dla Ciebie będzie zrobienie nowego sprite o jednym kolorze (twoim czarnym) i sprawdzanie z nim precyzyjnej kolizji, co też jest głupim pomysłem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 23 Lutego 2014 Udostępnij Opublikowano 23 Lutego 2014 ^@Ech nie doczytałem, widzę że Threef już to napisał co ja chciałem :P Czemu akurat z backgroundem? Nie lepiej stworzyć maskę kolizji zrobić ja niewidoczną i dać ją na mapę? Poniekąd po to chyba jest precision collision check (czy jakoś tak) w właściwościach spritu niestety nie wiem jak szybka jest ta metoda no i na pewno exe będzie więcej ważyć z powodu masek Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TO_mek Opublikowano 24 Lutego 2014 Udostępnij Opublikowano 24 Lutego 2014 czesc czy idzie zrobic kolizje obiektu np.z KOLOREM CZARNYM z background?? podaje link z przykladem,gdzie w background jest białe tło,po ktorym chciałbym aby wszystko sie poruszało i sa czarne linie,z którymi chciałbym aby wszystko wchodzilo w kolizje http://wyslijto.pl/plik/f1k67dwpum przyklad colission background jeżeli ktoś jest w stanie niech odeśle gotowy plik z kolizją,jestem bardzo ciekaw czy idzie takie cos zrobic pozdrawiam :) Prosty przykład kolizji obiektu z kolorem tła. w create obiektu GML opad:=true; w step obiektu GML if opad==true then if draw_getpixel(x,y+1)<>c_black then y+=1 else opad:=false; Gdy obiekt natrafi na czarny kolor to się zatrzyma i przestaje sprawdzać kolizję. Ale tak jak koledzy wyżej piszą - wooooooolne. Jak ktoś pamięta stareńkiego scorcha to na maleńkim roomie (640x250) obliczanie i przerysowanie opadania gruntu po strzale o promieniu 30px trwa całą sekundę (przy założeniu ze cały grunt jest jednego koloru bo grunt rysuję całymi liniami a nie punktowo). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 24 Lutego 2014 Administratorzy Udostępnij Opublikowano 24 Lutego 2014 Skoro możesz mieć tak duże tło z czarnymi elementami (albo tileset) to możesz mieć tyle samo obiektów (i dezaktywowac te poza viewem za pomocą parenta). A będzie szybciej, gwarantuję - ja mapę 60000x60000 tak osbługiwałem, z kilkunastoma tysiącami instancji obiektów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę