plik


[Kurs Allegro, C++] Pliki graficzne var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); var pageTracker = _gat._getTracker("UA-3650348-1"); pageTracker._initData(); pageTracker._trackPageview(); Serwis został przeniesiony pod nową domenę: http://cpp0x.pl/ Strona główna Kursy Artykuły Forum Pliki Promuj Nas! PowrótHistoria odwiedzonych stronPoprzednia lekcjaKurs Allegro, C++Następna lekcjaTutorial by Easykoder ®www.easykoder.vot.plPliki graficzneNo dobra... dzisiaj to już zaszalejemy... na całego  Nauczymy się wyświetlać grafikę! To już nie lada wstęp do napisania własnej gry. Otóż, aby wyświetlić jakąś grafikę w Allegro, należy: zadeklarować wskaźnik typu BITMAP załadować obrazek do pamięci i... wyświetlić obrazek ! Jak widzimy, nie ma w tym nic trudnego... aha... zapomniałem o jednym..., aby wyświetlić obrazek musimy go... mieć  więc narysujmy sobie jakiś obrazek w Paintcie, u mnie jest to ludzik 40x40 pix, zapisany jako ludek.bmp, plik umieszczamy w tym samym katalogu gdzie nasz projekt! ... A więc do roboty! Oto nasz kodzik:#include <allegro.h> int main() {   allegro_init();   install_keyboard();   set_color_depth(16);   set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0);   clear_to_color(screen, makecol(128,128,128));Deklarujemy wskaźniki do naszych BITMAP : BITMAP *ludek = NULL; Ładujemy obrazek do pmięci : ludek = load_bmp("ludek.bmp",default_palette); if (!ludek) {   set_gfx_mode(GFX_TEXT,0,0,0,0);   allegro_message("nie mogę załadować obrazka Ludek !");   allegro_exit();   return 0; }No i... oczywiście wyświetlamy nasze obrazek ! blit( ludek, screen, 0,0, 100,100, ludek->w, ludek->h); readkey(); Po zabawie na BITMAPach musimy zwolnić pamięć przez nie zajmowaną: destroy_bitmap(ludek); No, i jak zwykle na końcu zamykamy Allegro ;) allegro_exit(); return 0; } END_OF_MAIN();Jak widzicie jest to praktycznie ten sam kodzik co poprzednio... jedyna różnica polega na tym, że teraz zamiast tworzyć bitmapę po prostu ją wczytujemy za pomocą funkcji:ludek = load_bmp("ludek.bmp",default_palette);Jej jedynymi argumentami są : ścieżka do pliku wraz z jego nazwą, oraz paleta kolorów... najbezpieczniej dać tu zawsze default_palette i spokój... ;]Jeśli nie lubimy Windowsowego formatu .BMP możemy używać pokrewnych funkcji:load_bmp - dla formatu BMPload_pcx - dla formatu PCXload_lbm - dla formatu LBMload_tga - dla formatu TGAJednak do usuwania przydzielonej pamięci spod wskaźnika używamy zawsze destroy_bitmap.Obrazek bez tłaDobra... z wyświetlaniem obrazka nie ma problemu... ale czy zauważyliście, że nasz obrazek został wyświetlony razem z tłem ? Wygląda to naprawdę koszmarnie, aby temu zapobiec musimy zrobić dwie rzeczy:Po pierwsze tło naszego obrazka powinno być różowe ( koszmarny kolor ;) ( maximum czerwonego i niebieskiego, 0 zielonego ) kolor ten ma wzór makecol(255,0,255); A więc wypełnijmy tło naszego obrazka tym kolorem.Po drugie zamiast funkcji blit użyjemy masked_blit, dodajmy ją do powyższego kodu zaraz pod funkcją blit: masked_blit( ludek, screen, 0,0, 200,100, ludek->w, ludek->h);Funkcja ta jest bardzo podobna do funkcji blit, ma dokładnie te same argumenty, dlatego nie będę ich wyjaśniał. Najważniejsze w tej funkcji jest to, że kopiuje ona prostokątny wycinek pomijając kolor tła, dla trybu 8 bitowego ( 256 kolorów ) jest to barwa czarna czyli kolor o numerze 0. Dla trybów o wyższej głębi kolorów jest to kolor ostro różowy w formacie RGB ma numer 255,0,255.Zrzut ekranuAllegro umożliwia nam jeszcze jedną ciekawą funkcję, mianowicie zapisywanie obrazków do pliku. Możemy wybrać jeden z trzech formatów : BMP, TGA, PCX. Aby zapisać ekran z naszego programu używamy funkcji:save_bitmap("ekran.bmp", screen, default_palette);Jej argumentami są : nazwa pliku, bitmapa oraz paleta kolorów. Możemy używać również funkcji pokrewnych : save_bmp, save_pcx, save_tga, wtedy w nazwie pliku nie podajemy rozszerzenia.Kody źródłowe programówZadania do tej i innych lekcji znajdziesz na naszym repozytorium.Źródło materiałuMateriał został pobrany ze strony http://www.easykoder.vot.pl/tutoriale/allegro/lekcja04, za uprzednim otrzymaniem zgody od jego autora. Podziękowania dla Easykoder'a za udostępnienie materiałów Poprzednia lekcjaKurs Allegro, C++Następna lekcjaWszelkie prawa zastrzeżone. Autor: easykoderWszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści bez wyraźnej zgody jego autora jest zabronione.PowrótHistoria odwiedzonych stronPanel LogowaniaLogin:Hasło:Zapamiętaj mnie!Zarejestruj sięOdzyskiwanie hasłaUżytkownikówObecnie aktywnych:10Zalogowanych:0Zarejestrowanych:4367Ostatnie 24h:413Non-cookie 24h:3190Wszystkich:264759Ostatnia Aktualizacja2010-11-23 00:46:20 (39 dni temu)Ostatnio aktywniHandy9020 godzPiotr Szawdyński21 godzFletcher37 godzwiew39 godzPietrzuch40 godzmat250148 godzbooncki51 godzRaver73 godzWynajem Sopot - wakacjePokój 2 osobowy 130zł/doba;Lokalizacja: Sopothttp://sopotwynajem.pl O portaluArchiwumHistoriaIndeksRegulaminWyszukiwarkaLinkiRestauracja "ATOL" - Sopot© Wszelkie prawa zastrzeżone   2005-2011Czas wygenerowania strony: 0.068sAutor: Piotr Szawdyński

Wyszukiwarka