MZG Opublikowano 15 Sierpnia 2012 Udostępnij Opublikowano 15 Sierpnia 2012 Witam. Próbuje swoich sił w bibliotece Allegro i mam pewien irytujący problem którego nie umiem rozwiązać. (Wspomnę że jestem początkujący, więc to jest błahy problem). Przykładowo - mam grę(jeśli można to tak nazwać) w której chodzę czerwoną kulką po ekranie. Chciałem aby jej prędkość była napisana w środku jej samej, w tym celu użyłem funkcji "textout_ex" z koordynatami skierowanymi na środek owej kulki. I tu pojawia się problem, tekst jest za kulką a nie przed nią. Jest jakiś sposób żeby to kontrolować "co będzie na czym"? Sposób żeby każdy napis lub sprite miał swoją warstwę. Żebym np. kulka była NA obrazku ziemi a POD teoretycznym "dachem"(patrząc z góry kulka po prostu schowała by się pod prostokąt)? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 16 Sierpnia 2012 Udostępnij Opublikowano 16 Sierpnia 2012 Rysuj je w odpowiedniej kolejności, najpierw ludek a potem napis. Nie pamiętam już jak tam jest zbudowana ta biblioteka ale powinna być wbudowana możliwość ustawiania dla obiektów wartości Depth/Z/głębokość. Ostatecznie możesz coś takiego napisać samemu, sortujesz listę wszystkich obiektów według parametru głębokości a potem rysujesz je zaczynając od tych, które są"najdalej". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 16 Sierpnia 2012 Autor Udostępnij Opublikowano 16 Sierpnia 2012 No właśnie kolejność nie ma nic do rzeczy. Jakkolwiek bym kolejność nie ułożył ZAWSZE napis będzie za spritem. A co do parametru głębokości - to nigdzie go nie widzę i nie mam pomysłu jak on mógłby działać :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 16 Sierpnia 2012 Udostępnij Opublikowano 16 Sierpnia 2012 robisz cos zle bo kolejnosc ma znaczenie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sheriff99 Opublikowano 16 Sierpnia 2012 Udostępnij Opublikowano 16 Sierpnia 2012 Pokaż kod to pomożemy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 16 Sierpnia 2012 Autor Udostępnij Opublikowano 16 Sierpnia 2012 int draw_ball() { draw_sprite(bufor, kulka, b_x, b_y); blit( bufor1, screen, 0, 0, 0, 0, 1180, 720 ); } Tym kodem rysuje kulkę. int draw_text() { textout_ex(bufor, font, "jakiśtam tekst", 400, 10,makecol(0, 0, 0), -1); } Tym tekst. while (!key[KEY_ESC]) { (...fps...) while(fps_licz > 0) { int fps_stary_licz = fps_licz; hero.move_ball(); hero.speed_ball(); fps_licz--; if(fps_stary_licz <= fps_licz) break; } (...inne fps...) system.draw_text(); hero.draw_ball(); hero.debug(); clear_to_color(bufor, makecol(255,255,255)); textprintf_ex(bufor, font, 10, 10, makecol(0, 0,0),-1, "FPS:%d", fps_fps); } A to pętla gry. Tyle z kodem, jakoś sam nie wiem po co go pokazywać. Chciałbym wiedzieć jak zrobić te warstwy, bo kolejność w przypadku napisów chyba nie ma znaczenia :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 16 Sierpnia 2012 Udostępnij Opublikowano 16 Sierpnia 2012 system.draw_text(); hero.draw_ball(); ja tu widze jakbyes rysowal wpierw tekst :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 16 Sierpnia 2012 Autor Udostępnij Opublikowano 16 Sierpnia 2012 Problem rozwiązany :D. Ale nie, nie chodziło o przestawienie (próbowałem wcześniej), tylko o to że napis raz rzutowany na ekran nie był odświeżany. Czyli nie przechodził przez bufora, więc gdyby się ruszał zostawiał by ślady. Teraz jest wszystko dobrze :D Dzięki za to że chciało wam się w ogóle odpisywać, temat do zamknięcia. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi