[AM]Higor Posted April 29, 2006 at 09:04 PM Report Share #24884 Posted April 29, 2006 at 09:04 PM Tópicos A quem se destina? Allegro Instalando o Allegro Requisitos Mínimos Primeiros Passos A quem se destina? Se você é aquela pessoa que durante o tempo livre gosta de ter como passatempo jogos eletrônicos e sempre pensou ou se perguntou enquanto jogava “Um dia eu ainda farei um jogo como esse.” ou ainda “Como faço um jogo assim?”. Você está no caminho correto. Além de conhecer uma linguagem de programação, no nosso caso o C, você precisa esta familiarizado com alguma API (Application Programming Interface). Algumas das API’s mais usadas para jogos atualmente são o DirectX e o OpenGL. Porem, estas API’s estão um pouco acima do nível de compreensão de um iniciante. Más, de algum ponto temos que começar, não é? E nada melhor do que começar de baixo. Pois, criar um jogo de grande porte necessita tempo, dinheiro e muito estudo. Allegro Allegro é uma biblioteca para programação de jogos. Foi criada por Shawn Hargreaves, hoje trabalhando na Microsoft. Sua intenção era de fazer uma biblioteca de código simples para que o iniciante na área de programação de jogos não precisasse ler uma grande quantidade de livros sobre DirectX, OpenGL ou outras API’s. E o Allegro cumpre bem sua missão. É uma biblioteca de utilização simples, com uma pequena curva de aprendizado e que nos possibilita de fazer coisas muito interessantes com ela. Além de ser freeware e multiplataforma. Instalando o Allegro Dev C++ O Dev C++ tem um pequeno plug-in que facilita o trabalho de instalação do Allegro. Basta ir no menu Ferramentas >> Atualizações >> Selecione o Mirror >> Check for Updates >> Allegro. Com o DEV C++ e o Allegro instalado, vamos colocar a mão na massa. Requisitos Mínimos Agora que já demos uma introdução sobre a quem se destina esse artigo, sobre o Allegro e como instalá-lo, daremos continuidade ao nosso artigo. Primeiramente, estou supondo que você já conheça a linguagem de programação C/C++ e que esteja familiarizado com sua sintaxe e funções. Porem, caso não saiba C/C++, não se desespere. Há vários tutoriais espalhados pela internet e não será difícil achar um. Mesmo assim, no final do artigo estarei a disponibilizar alguns links com tutoriais para iniciantes nessa linguagem. Outro requisito é que você esteja apto a usar um compilador C/C++, no nosso caso, o DevC++ . Que esteja criado um projeto Allegro static. Arquivo >> Novo >> Multimedia >> Allegro Static. Sugiro que você de uma olhada nesse código criado como exemplo para ir se familiarizando com a sintaxe, depois apaga-lo e escrever tudo do zero. Ex: #include <stdio.h> int main(int argc, char *argv[]) { int A=7, B=8; printf(“Soma %d”, A+ ; } E comentários inicializados por: /* */ #include<stdio.h> /*Inclui a biblioteca stdio.h*/ Primeiros Passos Sinto-me feliz por você ter me aturado até aqui ^__^. Então sem mais delongas vamos ao nosso primeiro código. Creio que a melhor forma de explicar seja colocar um exemplo e após comenta-lo. Farei assim. #include <stdio.h> #include <allegro.h> #define MAX 800 #define MAY 600 int main() { allegro_init(); install_keyboard(); set_color_depth(32); set_gfx_mode(GFX_AUTODETECT_WINDOWED, MAX,MAY,0,0); allegro_message("Ola"); allegro_message("Meu primeiro programa em Allegro"); while(!key[KEY_ESC]) { textout_ex(screen,font,"Outra jeito de Escrever",0,0,makecol(0,255,0),-1); } return 0; } END_OF_MAIN(); 1- /*Includes e Defines... */ 2- /*Declaração normal da função main.*/ 3- allegro_init(); /*Inicializa as funções da biblioteca.*/ 4- install_keyboard(); /*Inicializa o teclado*/ 5- set_color_depth(32); /* Define a número de bit de cores a ser usado. De ver chamada antes da função (set_gfx_mode).E cria o ponteiro global de bitmap “screen” que representa a memória de vídeo do hardware.*/ Qnt Bits: 8,15,16,24,32 Qnt Cores: 256, 32768, 32 milhões, 4 bilhões 6- set_gfx_mode(GFX_AUTODETECT_WINDOWED, MAX,MAY,0,0); /*Inicializa o modo gráfico. Tem como primeiro parâmetro a escolha do modo gráfico forçando o modo janela, a resolução 800x600(MAX,MAY) e resolução virtual (que no momento não utilizaremos)0,0. */ Modo : Descrição GFX_SAFE : Faz com que o modo gráfico sempre seja inicializado corretamente GFX_TEXT : Retorna para o modo Texto GFX_AUTODETECT : Tenta definir a resolução para o especificado em em tela cheia. Caso falhe, tentará defini-la em janela. GFX_AUTODETECT_WINDOWED : Mesmo modo acima só que força a resolução para o tipo janela GFX_AUTODETECT_FULLSCREEN : Força resolução para o modo tela cheia 7- allegro_message("Olá"); /*Caixa de texto escrito “Ola”.*/ 8- allegro_message("Meu primeiro programa em Allegro");/*Caixa de texto escrito “Meu primeiro programa em Allegro” */ 9 - while(!key[KEY_ESC]) /*Laço while que ficará em loop até que a tecla ESC seja pressionada. */ 10- textout_ex(screen,font,"Outra forma de Escrever",0,0,makecol(0,255,0),-1); /*Escreve uma string em um bitmap. (font), Definição do tipo de font a ser utilizada. String a ser escrita.(0,0) posição na tela.(makecol(0,255,0)),Função para definir cor. Recebe como parâmetro o padrão RGB(Red, Green, Blue) ou seja, as 3 cores primarias. -1 Fundo de tela */ 11-/*Retorno da função main.*/ 12- END_OF_MAIN(); /* Finaliza a execução do programa. Após ter finalizado a função main, precisa desse comando para que o compilador link corretamente a biblioteca.*/ Após termos nos familiarizado com o nosso primeiro exemplo. Vamos passar para o passo de como imprimir imagens na tela. Algumas coisas são repetidas do programa anterior. Portanto, comentarei só os códigos novos. #include <stdio.h> #include <allegro.h> #define MAX 800 #define MAY 600 int main() { allegro_init(); install_keyboard(); set_color_depth(32); set_gfx_mode(GFX_AUTODETECT_WINDOWED, MAX,MAY,0,0); BITMAP *PAP; PAP=load_bitmap("C:\\PAP.bmp", NULL);/*logo do P@P em bitmap*/ draw_sprite(screen,PAP,0,0); while(!key[KEY_ESC]) { textout_ex(screen,font,"Portugal a Programar", 0,80,makecol(0,255,0),-1); textout_ex(screen,font,"www.portugal-a-programar.pt", 0,90,makecol(255,255,0),-1); textout_ex(screen,font,"A comunidade portuguesa de programadores", 0,100,makecol(255,0,0),-1); } return 0; } END_OF_MAIN(); 1- BITMAP *PAP; /* Cria um ponteiro do tipo bitmap *PAP(Portugal a programar)*/ 2- PAP=load_bitmap("C:\\PAP.bmp", NULL); /*Carrega o bitmap do arquivo com o parametro NULL para a Paleta que sera explicada depois.*/ 3- draw_sprite(screen,PAP,0,0); /* Função para imprimir imagem. Copia a imagem contida em PAP para o ponteiro screen, imprimindo na posição 0,0;*/ Bom, com isso terminamos a nossa primeira parte do tutorial sobre Allegro. No próximo artigo estarei comentando sobre o desenho de retas, retângulos e sobre sons. Espero que tenham gostado. Até à próxima. LINKS PARA TUTORIAIS DE C/C++ http://ead1.eee.ufmg.br/cursos/C/ http://alunos.uevora.pt/~l12890/Programa%E7%E3o/Progra_00.html Visualização do Ultimo Exemplo. Higor Henrique Aranda Cotta. Higor@nilvaniaranda.com.br [Artigo no Wiki] Marianna *TE AMO*Não! Não irei arrumar o seu computador... Link to comment Share on other sites More sharing options...
neon_prannock Posted April 29, 2006 at 09:18 PM Report Share #24889 Posted April 29, 2006 at 09:18 PM Não te preocupes, postaste bem. 😛 Bom tut, tenta só formatar um bocado o texto e meter o código dentro das respectivas tags, para tornar mais fácil a leitura. http://sergiosantos.info http://ideias3.com http://takeoff.ideias3.com Link to comment Share on other sites More sharing options...
[AM]Higor Posted April 29, 2006 at 09:21 PM Author Report Share #24890 Posted April 29, 2006 at 09:21 PM Sim... Estou trabalhando no arranjo das funções agora mesmo... Marianna *TE AMO*Não! Não irei arrumar o seu computador... Link to comment Share on other sites More sharing options...
Gurzi Posted April 29, 2006 at 10:32 PM Report Share #24898 Posted April 29, 2006 at 10:32 PM o que é o aleggro.h ? o meu dev c++ n encontra isso :\ Link to comment Share on other sites More sharing options...
saramgsilva Posted April 29, 2006 at 10:37 PM Report Share #24900 Posted April 29, 2006 at 10:37 PM Sim!Mto fixe...gostei e digo não tinha conhecimento disto! :dontgetit: Se tiveres mais programas básicos e outros exemplos, que queiras apresentar estás a vontade!! 😛 😛 Eu estou a trabalha em opengl, e adorei o teu tuti... aleggro.h é a biblioteca que contem as funções que vais usar do aleggro... www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5 Link to comment Share on other sites More sharing options...
deathseeker25 Posted April 30, 2006 at 12:15 AM Report Share #24912 Posted April 30, 2006 at 12:15 AM Um bom tutorial para todos os que pretendem aprender a trabalhar com Allegro. Eu sou um deles. Esperamos por mais novidades. 🙂 Link to comment Share on other sites More sharing options...
Gurzi Posted April 30, 2006 at 08:02 AM Report Share #24935 Posted April 30, 2006 at 08:02 AM mas o dev c++ ja tras essa biblioteca ? :\ o meu n encontra Link to comment Share on other sites More sharing options...
[AM]Higor Posted April 30, 2006 at 04:59 PM Author Report Share #24981 Posted April 30, 2006 at 04:59 PM mas o dev c++ ja tras essa biblioteca ? :\ o meu n encontra Gurzi não... Você deve instala-la atraves do plug-in. Esta tudo explicado lá em cima ^__^ Marianna *TE AMO*Não! Não irei arrumar o seu computador... Link to comment Share on other sites More sharing options...
Marino Posted April 30, 2006 at 05:15 PM Report Share #24983 Posted April 30, 2006 at 05:15 PM Agora que vi isto, fiquei a pensar se esta biblioteca é do tipo widgets http://www.wxwidgets.org/, se basicamente implementa as funçoes de um api, para se poder fazer janelas, etc num programa. Sou iniciante no widgets, ainda nem consegui fazer um programa, por isso pelo que vi existe aqui pessoal que me pode dizer quais as diferenças entre o Allegro e este. Link to comment Share on other sites More sharing options...
[AM]Higor Posted April 30, 2006 at 06:01 PM Author Report Share #24986 Posted April 30, 2006 at 06:01 PM Bom Marino... Pelo que vejo wxwidgets é uma biblioteca para criar GUI, correto??? O Allegro tambem possui algumas "bibliotecas" user-made que criam GUI. Mas, esse não é o propósito do Allegro. O Allegro é uma biblioteca de criação de jogos. Não sei falar as diferenças. Até porque ainda sou novo na área de programação com GUI... Nas férias de Junho/Julho aqui no Brasil, pretendo me aventurar por essa área. Mas, caso você domine bem essa WxWidgets, sugiro que crie um tutorial e coloque aqui. Marianna *TE AMO*Não! Não irei arrumar o seu computador... Link to comment Share on other sites More sharing options...
Marino Posted April 30, 2006 at 07:21 PM Report Share #24995 Posted April 30, 2006 at 07:21 PM Obrigado pela resposta. encontrei o site oficial http://www.talula.demon.co.uk/allegro/index.html . Destaco aqui alguma informação mais relevante: Manual de utilização: http://www.allegro.cc/manual/ Allegro is a portable library mainly aimed at video game and multimedia programming Graphic functions * Vector drawing: o pixels, lines, rectangles, circles, ellipses, arcs, Bezier splines o shape fill, with or without pattern o polygons: flat, Gouraud, textured (3D) and translucent * Sprites: o masked, compressed and compiled sprites o blitting, rotation, stretching, reduction, alpha blending, Gouraud shading o native support for BMP, LBM, PCX and TGA files (others supported with library extensions) * Color palettes: o color palette manipulation (reading, writing, conversion) o conversion of color formats RGB <-> HSV * Text: o support for different encodings and conversion, default is UTF-8 o bitmap fonts (masking, colouring, alignment) * Misc: o draw directly on the screen or on any-size memory bitmaps o hardware scrolling and triple buffering (where available), mode-X split screen o animation functions for FLI/FLC format Graphic drivers Sound functions Math functions * fixed point arithmetic and trigonometric routines * precalculated trigonometric tables * vector/matrix/quaternions 3d manipulation (translation, rotation, scaling, projection) Misc * mouse, keyboard and joystick management * high resolution interrupt timers (resolution of 10, 5 or less ms depending on platform) * vertical retrace simulation * manipulate configuration files * manipulate compressed files in LZSS format * manipulate multi-object resource-like compressed datafiles * tool for creating datafiles (grabber) * simple GUI for dialogs and file selector Link to comment Share on other sites More sharing options...
neon_prannock Posted April 30, 2006 at 08:08 PM Report Share #24998 Posted April 30, 2006 at 08:08 PM Enquanto Allegro é uma API usava para computação gráfica (jogos, demos, etc...) o WxWidgets é uma API cujo o objectivo é criar GUIs, ou seja, jenelas com objectos do mesmo tipo que Visual Basic, mas para outras linguagens. A principal vantagem é que é portável para vários sistemas operativos diferentes. http://sergiosantos.info http://ideias3.com http://takeoff.ideias3.com Link to comment Share on other sites More sharing options...
MiTh . Pt Posted June 22, 2006 at 02:31 AM Report Share #34189 Posted June 22, 2006 at 02:31 AM boas.. bem eu n sou mt entendido nisto, mas n percebo pk o meu compilador (Dev C++) a incluir essas bibliotecas todas (allegro) , dizme k allegro_init() is first declared.. isto n acontece so kd a biblioteca n está bem configurada? mas fiz exactamente como no exemplo aki descrito, akela cena do #include<allegro>, alguem pode me dizer se esta alguma coisa mal configurada.. ou e preciso reinstalar ou escrever algum codigo adicional? prontos tb kria dar os parabens a esta comunidade 😛 , tenho aprendido mtas coisas com vcx.. apesar d n participar mt ? Link to comment Share on other sites More sharing options...
machi Posted July 14, 2006 at 07:33 PM Report Share #38303 Posted July 14, 2006 at 07:33 PM já instalei os vários plug-ins e mesmo assim continuo sem poder correr o código... aparcem-me vários "Linker Error" no Dev-C++ Link to comment Share on other sites More sharing options...
MacgyverPT Posted July 20, 2008 at 10:59 AM Report Share #200353 Posted July 20, 2008 at 10:59 AM Este artigo já se encontra na wiki. Podem aceder em: Allegro em C. Cump. M.offspring.R Link to comment Share on other sites More sharing options...
_francisco_ Posted December 13, 2008 at 09:33 PM Report Share #232243 Posted December 13, 2008 at 09:33 PM Eu tenho o meu dev-c++ em inglês e no menu tools e não aparece nada a ver com actualizar. O que tem mais parecido (na minha opinião) é o package manager mas isso não permite adicionar nada. Alguém sabe como arranjar o allegro? Obrigado. Link to comment Share on other sites More sharing options...
pedrosorio Posted December 13, 2008 at 11:43 PM Report Share #232261 Posted December 13, 2008 at 11:43 PM Aconselho-te SDL. É muito portável e tem bons tuts e documentação: http://lazyfoo.net/SDL_tutorials/ (incluindo como fazer funcionar no dev-c++) Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
_francisco_ Posted December 14, 2008 at 12:26 AM Report Share #232268 Posted December 14, 2008 at 12:26 AM Obrigado. Já sei qual era o problema. Não tinha a versão beta do dec-c++ instalada, tinha uma mais antiga. Mas mesmo assim vou ver ambos os tuturiais. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now