indexc856




[Kurs Allegro, C++] Instalujemy allegro.

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 stron Kurs Allegro, C++Następna lekcjaWstępAllegro to między-platformowa biblioteka do tworzenia gier 2d oraz aplikacji multimedialnych. Pierwszą wersje napisał Shawn Hargreaves, było to w 1996 roku, dla kompilatora djgpp w mieszance C i assemblera. Allegro to skrót od Allegro Low Level Game ROutines. Biblioteka jest udostępniona w internecie razem ze swoim kodem źródłowym. Strona domowa allegro : http://alleg.sourceforge.net/  Do używania allegro nie trzeba zaawansowanej wiedzy o C++. Wystarczy umiejętność programowania strukturalnego i podstawy :) Dla tych co nie wiedza programowanie strukturalne to zazwyczaj programowanie nie używając obiektów. Czyli prościej - dzielenie aplikacji na dane i kod. Oczywiście nic nie stoi na przeszkodzie żeby programować obiektowo używając allegro. Przykład to gierka, która zamieściłem na forum. Lecz teraz widzę, ze jest wysoce niedopracowania (jeśli chodzi o używanie obiektowości). Za to można zobaczyć sobie zastosowanie prostych funkcji rysujących prymitywy (figury na płaszczyźnie). Dlaczego allegro ? Dlaczego akurat allegro wybrałem na początki swojej kariery jako programista gier? Przede wszystkim za względną i nie zniechęcającą prostotę przy podstawach nauki. Allegro to również idealny wybór dla ludzi, którzy nie chcą stosować bibliotek graficznych "jedynego słusznego systemu" i chcą żeby ich gry były łatwe do przeniesienia pod system linux. Zaznaczam, ze sam jestem początkującym w allegro:D.Na przykład fajnej gry napisanej przy pomocą allegro dam link do pewnego, chyba już ukończonego, projektu na gamedev.pl: http://tiny.pl/lxmb Największa wada według mnie można uznać to ze allegro nie jest zorientowane obiektowo. Mi to nie przeszkadza ale musiałem to zaznaczyć :).Opis możliwości można znaleźć tu: http://alleg.sourceforge.net/readme.pl.html. Instalujemy i odpalamy allegro : DOpisze tu proces instalacji allegro pod Dev - C++(instalacja w Code::Blocks - opisana jest niżej).Odpalamy Dev-C++. Zakładka Pomoc - > O Dev - ++ - > Sprawdź uaktualnieniaW nowo otwartym oknie przy "Select devpak server" wybieramy "devpaks.org Community Devpaks".Wciskamy (na samym dole) "Check for updates"Po załadowaniu sie listy, w "Groups" wybieramy AllegroWciskamy "Download selected"Po chwili (od waszego łącza zależy jak długiej :) ) mamy już bibliotekę allegro. W "Groups/Allegro" znaleźć można jeszcze fajne pluginy takie jak AllegroGL, który umożliwia wykorzystywanie OpenGL z allegro:).Czas na odpalenie i napisanie pierwszej aplikacji. Plik - > Nowy - > Projekt - > Przechodzimy na zakładkę MultiMedia - > Allegro Application Static. Wybieramy jakieś miejsce na nasz nowy projekt i gotowe. Dev - C++ nawet za nas dodał funkcje inicjalizujace tryb allegro:). Przyjrzyjmy się im:#include <allegro.h> Dyrektywa, która dołącza bibliotekę allegro.void init() {  int depth, res;  allegro_init();  depth = desktop_color_depth();  if (depth == 0) depth = 32;  set_color_depth(depth);  res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);  if (res != 0) {    allegro_message(allegro_error);    exit(-1);  }  install_timer();  install_keyboard();  install_mouse();  /* add other initializations here */} int depth, res - inicjalizacja zmiennych pomocniczych  allegro_init() - funkcja, która inicjalizuje tryb allegro depth = desktop_color_depth() - funkcja desktop_color_depth() zwraca do zmiennej depth głębie kolorów, którą mamy w windowsie (w przypadku, gdy ktoś programuje pod linuxem było to by pewnie jego środowisko graficzne) if (depth == 0) depth = 32 - jeśli są jakieś problemy z odczytaniem, bądź jakimś cudem desktop_color_depth() zwróciło 0 automatycznie ustawia depth na 32.[li] set_color_depth(depth) - funkcja ustawia głębie kolorów naszej aplikacji na podana w nawiasie. Wczesniej do zmiennej depth była zwrócona głębia naszego pulpitu więc funkcja stara się ustawić naszą domyślną głębieres = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0) - uruchamia tryb graficzny i w przypadku sukcesu zwraca 0 do zmiennej res. Specyfikacja funkcji przedstawia sie następująco: int set_gfx_mode(int card, int w, int h, int v_w, int v_h)card zazwyczaj jest jednym z "magicznych sterowników allegro" w skrócie można powiedzieć, że to "wirtualne sterowniki", które pozwalają uniknąć zamieszania z różnorodnością sterowników pod wiele kart graficznych.int w i int h to jest szerokość i długość rozdzielczości a v_w i v_h to szerokość i długość rozdzielczości naszego wirtualnego ekranu (o tym kiedy indziej)     if (res != 0) {          allegro_message(allegro_error);          exit(-1);     }     Instrukcja warunkowa, która sprawdza czy ustawienie rozdzielczości powiodło się. Jeśli coś nie poszło jak trzeba allegro zwróci komunikat ze stosowną informacją install_timer();     install_keyboard();     install_mouse();    Funkcje instalujące timer, obsługę myszy oraz klawiatury O timerze i jego zastosowaniach dokładniej kiedy indziej.To by było na tyle jeśli chodzi o podstawową inicjalizacje :). Została jeszcze funkcja deinit():void deinit() {  clear_keybuf();  /* add other deinitializations here */}Jedyne co ona robi to czyści bufor klawiatury.int main() {  init();  while (!key[KEY_ESC]) {    /* put your code here */  }  deinit();  return 0;}END_OF_MAIN()Komentarza wymaga tylko END_OF_MAIN(). Allegro Manual zaleca używanie tego makra. Podyktowane jest to wieloplatformowością allegro i pozwala uniknąć wielu problemów z tym związanych:). Według Allegro Manual tego makra wymaga Windows, oraz niektóre dystrybucje UNIXOWE i MAC OS X.Instalacja w Code::BlocksBy zainstalować bibliotekę w tym środowisku należy ją ściągnąć specjalnie przygotowaną. Pobieramy pliki(a dokładnie foldery) Allegro 4.2.2 - MinGW i kopiujesz je do Coda::B -> u mnie jest to ścieżka domyślna więc, C:/Program Files/CodeBlocks/MinGW. Dodatkowo możesz wrzucić pliki(foldery) AllegroGL 0.4.2 w to samo miejsce. Polecam również specjalny dodatek do środowiska Code::Blocks, który umożliwia tworzenie projektu Allegro. Wystarczy ściągnąć i zainstalować allegro_wizard_codeblocks. Po instalacji dodatku mamy do dyspozycji 4 wbudowane gotowe projekty. Jedynie Hallo Word będzie działać poprawnie, reszta potrzebuje dodatkowych bibliotek lub innych dodatków by poprawnie się skompilowały.Więcej informacji na temat allegro można znaleźć na www.allegro.cc.ZakończenieTo wszystko jeśli chodzi o podstawy podstaw. Czas omówić działanie allegro. Wszystko opiera się o obiekty typu BITMAP. Głównym takim obiektem jest ekran. Jeśli będzie trzeba użyć jakiegoś obrazka jako tła to będzie on wczytywany do osobnego obiektu. Wiem, ze może to brzmieć trochę dziwacznie ale wszystko pokaże na przykładach oraz również wyjaśnię na czym polega animacja buforowana i ogólne zastosowanie buforów ekranów. Allegro standardowo obsługuje tylko 4 formaty BMP, PCX, TGA i LBM. Na koniec dodam, ze warto obejrzeć przykłady (znajdują się w Dev-CppAllegroExamples) oraz demo gierkę (AllegroDemo). Już teraz radze zajrzeć do Dev-Cppdocsallegro i oswoić się z manualem. Nie ważne jakie kursy by się przeczytało nic nie uchroni programisty od korzystania z dokumentacji :). Kurs Allegro, C++Następna lekcjaWszelkie prawa zastrzeżone. Autor: dudekWszystkie 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.069sAutor: Piotr Szawdyński





Wyszukiwarka

Podobne podstrony:
IndexController
java awt image IndexColorModel
indexc052
indexcb67
IndexController 4
IndexController
IndexController

więcej podobnych podstron