Exigo Opublikowano 9 Maja 2009 Opublikowano 9 Maja 2009 Towarzysze! Podstawowym elementem robienia cieni jest zazwyczaj rysowanie "obok, drugi raz"- tzn. dodawanie drugiej linijki kodu z prześwitem wraz z czarnym blendowaniem. Lecz co, jeśli mam tych spritów multum? Pisać pod każdym kodem rysowanie cienia?... To nie wszystko - rysuje się też coś za pomocą vertexów, przez to będę musiał skopiować sporą część kodu... - nie może być! :o Gdzieś mi się obiło o oczy że można zrobić cienie za pomocą surfaces - tzn. że jakoś się pobiera warstwę rysowania, po czym rzutuje się kilka pixeli dalej. Da się zmajstrować coś takiego? ^_^
Konrad-GM Opublikowano 9 Maja 2009 Opublikowano 9 Maja 2009 Ależ oczywiście! 1. Tworzysz surface 2. Rysujesz na nim czarne cienie obiektów 3. Rysujesz surfacea z ustawioną alphą
Exigo Opublikowano 9 Maja 2009 Autor Opublikowano 9 Maja 2009 Hah.., łatwo powiedzieć z twojej strony - niestety na surface'ach się nie znam.. Ba!, nawet nie miałem styczności z nimi. xP Można by bardziej... hm, "konkretnie"? ^^ - Peace!
Dawidds Opublikowano 9 Maja 2009 Opublikowano 9 Maja 2009 Create surf = surface_create(640, 480); //Badz mniejszy - raczej nie rob surface'sow na calego rooma surface_set_target(surf); draw_clear_alpha(c_white, 1); surface_reset_target(); Step/Draw surface_set_target(surf); //Od teraz wsyzstko malujesz nie na ekranie, a na surface'sie. Surfaca mozna porownac do jakby obrazka w Paintcie - jak cos na nim namalujesz, to to tam zostanie :P draw_text(5, 5, "hello world, lol"); surface_reset_target(); //Koniec malowania po surface'sie Draw draw_surface(surf, 0, 0); //Nie jestem pewny kolejnosci argumentow Sory, nie chce mi sie gmlów dodawać :D
Makary155 Opublikowano 10 Maja 2009 Opublikowano 10 Maja 2009 Na yoyo kiedyś widziałem Pheonix lighting engine, możesz spróbować znaleźć.
Exigo Opublikowano 10 Maja 2009 Autor Opublikowano 10 Maja 2009 Fajne to to ^_^ . Już opanowałem, ale jednak coś tu śmierdzi... To drzewo - rysowane na vertexach, jak widać... się rozmazuje. Jak to naprawić? @Makary - Wolę jednak wykombinować to samemu, bez zbędnych syfów - jak to bywa w "fajnych" przykładach. ;)
Nobody Opublikowano 10 Maja 2009 Opublikowano 10 Maja 2009 A czy przed rysowaniem cienia na surface czyścisz go? Jeżeli nie - to jest właśnie ten problem :P
PsichiX Opublikowano 10 Maja 2009 Opublikowano 10 Maja 2009 przed ponownym rysowaniem czyli tuz po surface_set_target dajesz draw_clear(c_black) albo to co ja stosuje: draw_clear_alpha(c_black,0)
Exigo Opublikowano 10 Maja 2009 Autor Opublikowano 10 Maja 2009 Dzięki, chodzi jak w zegarku - ale jeszcze jedno pytanie. Jak "przemalować" całą surface na jakąś barwę?... Np. że kolorowy sprite rysuje się na czarno. ;d
Exigo Opublikowano 10 Maja 2009 Autor Opublikowano 10 Maja 2009 draw_set_color(); ? Ależ oczywiście że nie działa - bym nie pytał. x)
Cekol Opublikowano 10 Maja 2009 Opublikowano 10 Maja 2009 draw_surface_ext ? :D No poszukaj w dokumentacji ;p
Exigo Opublikowano 10 Maja 2009 Autor Opublikowano 10 Maja 2009 Fak! To działa! Dzięki wszystkim za pomoc. ;)
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ę