FAQ  Szukaj  Użytkownicy  Grupy  Statystyki  Rejestracja  Zaloguj


Poprzedni temat :: Następny temat
C++ Builder i Biblioteki Allegro
Autor Wiadomość
Jax00 
Jax


Wiek: 17
Dołączył: 08 Kwi 2008
Posty: 1
Skąd: Z@borów
Wysłany: 2008-04-08, 16:00   C++ Builder i Biblioteki Allegro

Czy do C++ Buildera można dołączyć biblioteki Allegro, jeżeli tak to jak to uczynić?
_________________
Programista Wiesza Się Wraz Ze Swoim Programem, Ciekawe Jak Się Czuje Bill Gates??
 
 
     
Prezes123 


Dołączył: 08 Kwi 2008
Posty: 9
Wysłany: 2008-04-08, 16:44   

Biblioteka jest udostępniona w inernecie 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 umjejetność programowania strukturalnego i podstawy :) Dla tych co nie wiedza programowanie strukturalne to zazwyczaj programowanie nie używajac 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 zamiesciłem na forum. Lecz teraz widze, ze jest wysoce niedopracowania (jesli 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 wybralem na początki swojej kariery jako programista gier? Przede wszystkim za względną i nie zniechęcającą prostoste przy podstawach nauki. Allegro to rownież idealny wybor dla ludzi, którzy nie chcą stosowac bibliotek graficznych "jedynego slusznego systemu" i chca zeby 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 pomoca allegro dam link do pewnego, chyba już ukończonego, projektu na gamedev.pl: http://tiny.pl/lxmb

Najwiekszą wada według mnie mozna 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 : D

Opisze tu proces instalacji allegro pod Dev - C++.

* Odpalamy Dev-C++. Zakładka Pomoc - > O Dev - ++ - > Sprawdź uaktualnienia

* W 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 Allegro

* Wciskamy "Download selected"

Po chwili (od waszego łącza zależy jak długiej :) ) mamy juz biblioteke 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ładke MultiMedia - > Allegro Application Static.

Wybieramy jakies miejsce na nasz nowy projekt i gotowe. Dev - C++ nawet za nas dodał funkcje inicjalizujace tryb allegro:)

Przyjrzyjmy sie nim.
#include <allegro.h>

Dyrektywa, która dołacza biblioteke 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 glębie kolorów, ktora mamy w windowsiewesoły (w przypadku, gdy ktos programuje pod linuxem było to by pewnie jego środowisko graficzne)

* if (depth == 0) depth = 32 - jesli 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łebie 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łębie

* res = 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 powiedziec, że to "wirtualne sterowniki", które pozwalają uniknąć zamieszania z rożnorodnością sterowników pod wiele kart graficznych.
int w i int h to jest szerokość i dlugość 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 rodzielczości powiodło sie. Jesli cos nie poszło jak trzeba allegro zwróci komunikat ze stosowną informacją wesoły

* install_timer();
install_keyboard();
install_mouse();
Funkcje instalujące timer, obsługe myszy oraz klawiaturywesoły 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 uzywanie tego makra. Podyktowane jest to wieloplatformowością allegro i pozwala uniknąć wielu problemów z tym zwiazanych:) Według Allegro Manual tego makra wymaga Windows oraz niektóre dystrybucje UNIXOWE oraz MAC OS X.

Źródło : http://ddt.pl/kursy/?LessonId=141
 
 
     
AraGorN 
.NET Lover


Wiek: 22
Dołączył: 08 Kwi 2008
Posty: 31
Wysłany: 2008-04-09, 18:43   

Tak, szczegolowy opis jak to zrobic znajduje sie tutaj:
http://alleg.sourceforge....uild/bcc32.html
 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Stronę monitoruje stat24 website monitoring service



Wymiana Linkiem
Forum Komputerowe | PcPlanet |Forum eKing.pl | Warez | www.warezik.eu | Forum GSM | Serwis SonyEricsson | Robert Kubica | Darmowe dzwonki i motywy | Sony Ericsson Forum | gsmfon.org - GSM | Aukcje EMAR
Strona wygenerowana w 0,09 sekundy. Zapytań do SQL: 12