Borek Opublikowano 9 Listopada 2006 Udostępnij Opublikowano 9 Listopada 2006 Witam Mam pytanko: Jest objekt kwadrat, którego depth wynosi 0 i rzuca on cień, czyli: draw_sprite_ext(sprite_index, -1, x+10, y+10, 1, 1, 0, c_black, 0.5) // Rysowanie jego cienia Cień rysowany jest jako pierwszy, tak aby znajdował się pod spodem, czyli narysowywujemy na niego sprite "kwadrat": draw_sprite_ext(sprite_index, -1, x, y, 1, 1, 0, c_white, 1) // Rysowanie sprite'a Teraz objekt trójkąt o wartości depth 1 w momencie jak wejdzie na kwadrat, to znajdzie się pod nim ( ponieważ ma depth równy 1 ), ale niestety znajdzie się również pod jego cieniem, a mi chodzi o to, żeby objekt trójkąt był pod kwadratem, ale nad cieniem - NIE TWORZĄC PRZY TYM DODATKOWEGO OBJEKTU ODPOWIEDZIALNEGO ZA CIEŃ. Mógłbym oczywiście stworzyć objekt kwadrat_cien i dać mu depth 2, ale mi nie o to chodzi. Próbowałem takiej trochę śmiesznej sztuczki, ale nie wyszło :) W draw_event kwadrat: depth = 2 draw_sprite_ext(sprite_index, -1, x+10, y+10, 1, 1, 0, c_black, 0.5) // Rysowanie jego cienia depth = 0 draw_sprite_ext(sprite_index, -1, x, y, 1, 1, 0, c_white, 1) // Rysowanie sprite'a Czy jest to w ogóle możliwe, aby manipulować depthem podczas rysowania w jednym objekcie? Czy tylko zostaje możliwość dodatkowego objektu odpowiedzialnego za cień? Z góry dzięki :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 9 Listopada 2006 Filar Społeczności Udostępnij Opublikowano 9 Listopada 2006 Czytając pierwsze zdanie już wiedziałem o co się spytasz. :D Też się nad tym męczyłem i niestety sądzę, że się nie da. :( Może jeszcze jakiś inny sposób. Ewentualnie zawsze możesz stworzyć dodatkowy obiekt, który będzie rysował wszystkie cienie obiektów jakie chcesz. Zawsze to lepiej niż robić osobny obiekt dla każdego cienia. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 9 Listopada 2006 Udostępnij Opublikowano 9 Listopada 2006 Chyba najprościej jest zachować kolejność rysowania, czyli to co ma być na dole powinno być rysowane pierwsze. Może napisanie dodatkowego eventa pomogło by, pokombinuje jeszcze w domu. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZyperPL Opublikowano 2 Lipca 2011 Udostępnij Opublikowano 2 Lipca 2011 Odświeżam, mam taki sam problem a nie chcę robić drugiego takiego samego tematu :P Bo po co? Idzie takie coś zrobić? A nie można by użyć d3d_set_depth? Tylko, że do gry 2D :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 2 Lipca 2011 Udostępnij Opublikowano 2 Lipca 2011 Wyrzuć rysowanie z tych obiektów, stwórz nowy i w Draw: with(obiekt) rysuj_cień with(trójkąt) rysuj_trójkąt with(obiekt) rysuj_obiekt Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 2 Lipca 2011 Udostępnij Opublikowano 2 Lipca 2011 Albo wybrać jeden z tych obiektów, ustawić najniższy depth i w nim w drawie dać to co dał Muczek, obawiam się tylko, że nastąpi pływanie. 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ę