Trabalho pjd i-walter_matheos

298 visualizações

Publicada em

Este trabalho busca apresentar de forma funcional como
instalar, e seguir o curso básico de 36 lições para SDL(Lazy Foo' Productions) para aprender todos os recursos básicos da biblioteca.

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
298
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Trabalho pjd i-walter_matheos

  1. 1. _____________________________________________________________________________ Fatec Carapicuíba Trabalho Professor Walter Matheos – PJD-I Aprendendo a Programar um jogo 2D ou 3D em C/C++ Utilizando a biblioteca SDL 4° Semestre Jogos Digitais - Noturnos Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  2. 2. _____________________________________________________________________________ Fatec CarapicuíbaSumário1 APRESENTAÇÃO ............................................................................................................... 32 ESPECIFICAÇÕES .............................................................................................................. 33 PASSOS PARA INSTALAÇÃO ÁGIL................................................................................ 3 3.1 Passo_01_SDL_code..................................................................................................... 3 3.2 Passo_02_codeblocks-10.05mingw-setup..................................................................... 4 3.3 Passo_03_CodeBlocks .................................................................................................. 4 3.3.1 PASSOS PARA CONFIGURAÇÃO MANUAL ................................................. 5 3.4 Passo_04_TrabalhoWalter_Projetos_tutoriais .............................................................. 7 3.4.1 Estruturas das pastas de projetos do Tutorial ........................................................ 7 3.4.2 Estrutura padrão de Uma paste de Projeto - lesson01 ........................................... 8 3.4.3 Arquivo de Projeto Codeblocks *.cbp ................................................................... 84 RESUMO TUTORIAIS (1 ao 36):...................................................................................... 105 Conclusão ............................................................................................................................ 126 BIBLIOGRAFIA:................................................................................................................ 13 Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  3. 3. _____________________________________________________________________________ Fatec Carapicuíba1 APRESENTAÇÃO SDL (Simple DirectMedia Layer)é uma genial biblioteca CRIADA EM 1998 usada para Games. Tem versões para praticamente todas as linguagens existentes e serve de base para muitas outras bibliotecas de games. Este trabalho busca apresentar de forma funcional como instalar, e seguir o curso básico de 36 lições para aprender todos os recursos básicos da biblioteca.2 ESPECIFICAÇÕESNeste exemplo usarei softwares gratuitos: Code Blocks 32bit como IDE de Desenvolvimento. E o MinGW como compilador,Utilizando a parte 32bits da biblioteca SDL, em um So Win7 (64b)Também criei pacotes reunindo as bibliotecas e softwares utilizados para o plenoFuncionamento destes tutoriais. São os cinco arquivos listados abaixo e devem ser baixado noseguintes endereço ( http://www.4shared.com/folder/GJ8caRvP/SDL.html ): • Passo_01_SDL_code.exe • Passo_02_codeblocks-10.05mingw-setup.exe • Passo_03_CodeBlocks.exe • Passo_04_TrabalhoWalter_Projetos_tutoriais.exe • Passo_05_Tutoriais_SDL.exe3 PASSOS PARA INSTALAÇÃO ÁGILAbaixo segue um passo a passo Ultra simplificado para tentar reunir o melhor dos milhares detutoriais disponíveis na internet, para você começar a estudar em SDL (após ter feito osdownloads acima..) em 5 minutos, ou menos. Se possível instale nos caminhos propostos.3.1 Passo_01_SDL_code • Descompacte a pasta SDL_code do arquivo Passo_01_SDL_code.exe neste caminho de raiz C:SDL_code. Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  4. 4. _____________________________________________________________________________ Fatec Carapicuíba3.2 Passo_02_codeblocks-10.05mingw-setup • Instale o Programa em sua pasta padrão C:Program Files (x86)CodeBlocks3.3 Passo_03_CodeBlocksApós a devida instalação no passo anterior, com a IDE CodeBlocks fechado, descompacte oarquivo CodeBlocks do arquivo Passo_03_CodeBlocks.exe para atualizar as configurações doprograma CodeBlocks em C:Program Files (x86). Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  5. 5. _____________________________________________________________________________ Fatec Carapicuíba3.3.1 PASSOS PARA CONFIGURAÇÃO MANUALCaso seja necessário Configurar o SDL no CodeBlocks manualmente siga os seguintes passos: • Abra o Menu Settings > Compiler and debbuger... • Na aba Linker Settings Cole todas as opções abaixo em Other linker options -lmingw32 -lSDLmain -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lOpenGL32 -lglu32 -lfreeglut Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  6. 6. _____________________________________________________________________________ Fatec Carapicuíba • Na aba Search directories, aba Compiler adicione(add) a pasta C:SDL_codeinclude • Na aba Search directories, aba Linker adicione(add) a pasta C:SDL_codelib Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  7. 7. _____________________________________________________________________________ Fatec Carapicuíba • Clique em OK.3.4 Passo_04_TrabalhoWalter_Projetos_tutoriaisVoce pode descompactar esta pasta onde quiser. Nesta pasta você verá a seguinte estrutura depastas:3.4.1 Estruturas das pastas de projetos do Tutorial Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  8. 8. _____________________________________________________________________________ Fatec CarapicuíbaOs atalhos permitirão que você carreguem vários exemplos de uma vez no Codebloks (cuidado..você receberá mensagens de erros se você fizer isso com muitos projetos de uma só vez.).3.4.2 Estrutura padrão de Uma paste de Projeto - lesson01 • Pastas bin> Debug – Criadas após a compilação do projeto, contém o executável. • Pasta obj>Debug – Criadas após a compilação do projeto, contém um arquivo binário lesson01.o (Arquivo Objeto – Arquivo gerado pelo compilador, após a validação sem erros do fonte temporário pré-processado. Todos os arquivos objetos mesclados pelo linker que geram o executável. Ou bibliotecas dinâmicas no caso do WIndows) • • hello.bmp – Arquivo necessário do projeto. • lesson01.cbp – Arquivo XML de configuração do Projeto, será detalhado adiante • lesson01.cpp – Arquivo Fonte c++ • lesson01.depend – Arquivo XML gerado após a compilação, guarda a lista de todas as bibliotecas c++ (*.h) dependentes, utilizadas para gerar o programa. • lesson01.layout – Arquivo XML gerado após a compilação, guarda as configurações da janela de sua aplicação • readme.txt – arquivo do site3.4.3 Arquivo de Projeto Codeblocks *.cbp<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>2 <CodeBlocks_project_file>3 <FileVersion major="1" minor="6" />4 <Project>5 <Option title="lesson01" />6 <Option pch_mode="2" />7 <Option compiler="gcc" />8 <Build>9 <Target title="Debug">10 <Option output="binDebuglesson01" prefix_auto="1" extension_auto="1" /> Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  9. 9. _____________________________________________________________________________ Fatec Carapicuíba11 <Option object_output="objDebug" />12 <Option type="0" />13 <Option compiler="gcc" />14 <Compiler>15 <Add option="-g" />16 </Compiler>17 </Target>18 <Target title="Release">19 <Option output="binReleaselesson01" prefix_auto="1" extension_auto="1" />20 <Option object_output="objRelease" />21 <Option type="0" />22 <Option compiler="gcc" />23 <Compiler>24 <Add option="-O2" />25 </Compiler>26 <Linker>27 <Add option="-s" />28 </Linker>29 </Target>30 </Build>31 <Compiler>32 <Add option="-Wall" />33 <Add directory="C:SDL_codeinclude" />34 </Compiler>35 <Linker>36 <Add library="mingw32" />37 <Add library="SDLmain" />38 <Add library="SDL.dll" />39 <Add library="user32" />40 <Add library="gdi32" />41 <Add library="winmm" />42 <Add library="dxguid" />43 <Add directory="C:SDL_codelib" />44 </Linker>45 <Unit filename="hello.bmp" />46 <Unit filename="lesson01.cpp" />47 <Extensions>48 <code_completion />49 <debugger />50 </Extensions>51 </Project>52 </CodeBlocks_project_file>Linha 5 - (Nome do projeto)Linhas 9,10,11 – Pasta saída DebugLinhas 18,19,20 – Pasta Saída ReleaseLinhas 33 – Configuração dos includes do SDLLinhas 35 à 42 - linkersLinha 43 - Configuração das libs do SDL Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  10. 10. _____________________________________________________________________________ Fatec Carapicuíba4 RESUMO TUTORIAIS (1 ao 36):1 - Aprender a Carregar Imagens na tela.2- Agora que você tem uma imagem na tela na parte 2 do último tutorial , é hora de fazer a suasuperfície de carga e blitting de uma forma mais eficiente.3- Neste tutorial você vai aprender a configurar SDL_image. Se você sabe como configurar essaextensão, você pode definir qualquer um deles para cima.4- Este tutorial vai lhe ensinar como verificar para eventos e manipular eventos. Um evento ésimplesmente algo que acontece. Poderia ser uma tecla, o movimento do mouse, oredimensionamento da janela ou, neste caso, quando o usuário quer x fora da janela.5- Essa lição vai ensinar-lhe como remover a cor de fundo ao aplicar uma superfície.SDL_Surface A estrutura tem um elemento chamado a chave de cores. A chave é a cor que vocênão quer aparecer quando blitting a superfície. É o que você usa quando você quer ter fundostransparentes.6- Nesta lição que temos uma folha de sprite com 4 pontos sprites diferentes sobre ele. Estetutorial explica como cortar um sprite de uma folha de sprite.7- Este tutorial aborda os conceitos básicos do uso SDL_ttf.8- Esta lição aborda como detectar teclas pressionadas.9- Este é um tutorial simples que vai te ensinar a lidar com vários eventos de mouse para fazerum simples botão.10- Este tutorial irá ensiná-lo a verificar se a tecla é pressionada, ao invés de eventos demonitoramento chave.11- Este tutorial aborda os conceitos básicos reprodução de música e efeitos de som usandoSDL_mixer para jogar efeitos de som e "música" que eu fiz tocando no meu monitor.12- Nesta lição nós vamos fazer um simples temporizador que pode iniciar e parar.13- Aqui você vai aprender a fazer uma classe com temporizador iniciar, parar, pausar e asfunções que você precisa quando a programação de um jogo.14- Ensina a limitar a taxa de quadros.15 - Este tutorial vai ensinar você a fazer uma moldura simples por segundo teste.16- Conceitos básicos de mover um objeto ao redor da tela.17- Este tutorial abrange uma forma básica para verificar a colisão entre dois objetos. Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  11. 11. _____________________________________________________________________________ Fatec Carapicuíba18- Aqui você vai aprender a obter precisão de colisão até o pixel.19- Este tutorial vai te ensinar uma forma mais eficiente de lidar com círculos e detecção decolisão.20- Este tutorial faz um boneco atravessar a tela para ensinar o básico de sprites animadoras.21- Nesta lição vamos refazer o tutorial movimento só que desta vez vai ser capaz de se moverem torno de uma área de qualquer tamanho graças a rolagem.22- Este tutorial vai ensinar você a fazer um fundo de rolagem infinita suave.23- Fazer a nossa própria função para lidar com teclas pressionadas para obter a entrada string.24- ensina como salvar os dados de seu jogo.25- Aqui vamos aprender a usar a obter a entrada de um joystick / gamepad. (hw necessário )26- Este tutorial mostra como fazer uma janela ajustável e manipular os eventos de janela muda.27- Neste tutorial vamos blit duas superfícies com a frente um ser capaz de fade in / out,alterando seu valor de alfa.28- Aqui vamos fazer um motor de partículas muito simples para cercar o ponto em faíscas.29- Aqui você vai aprender a carregar um mapa de azulejo para colocar as telhas e comointeragir e mostrar telhas.30- Este tutorial vai ensinar você a fazer uma fonte bitmap comum estilo.31- Neste tutorial, vamos ler / escrever pixels para tornar a nossa função própria superfícieinversão.32- Aqui nós vamos fazer o movimento de pontos com base no tempo em vez de taxa dequadros por isso move o mesmo, não importa o que a taxa de quadros é.33- Este tutorial irá apresentá-lo para as capacidades do SDL multithreading de plataformacruzada.34- Neste tutorial vamos usar semáforos para travar roscas para impedi-los de colidir com ooutro.35- Aqui nós vamos fazer alguma sincronização de segmento mais avançado, usando mutexes econdições. Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  12. 12. _____________________________________________________________________________ Fatec Carapicuíba36- Quando precisar de mais potência, velocidade e flexibilidade, é hora de passar paraOpenGL. Embora não vai cobrir como usar OpenGL aqui ( eu ouço há um tutorial para isso ),vamos ver como utilizar SDL para tornar OpenGL...5 ConclusãoO SDL perde o Brilho apenas para as plataformas de Desenvolvimento Ágil para games comoUnity, Shiva, Construct, RPG Maker, etc. Mas é sem sombra de dúvidas a ferramentaAcadêmica perfeita para que os alunos de programação dos primeiros Semestres Desenvolvam-se na linguagem de Programação Utilizada com SDL e sejam apresentados à estrutura Básicaque permanecem encapsuladas dentro das Plataformas de desenvolvimento. Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br
  13. 13. _____________________________________________________________________________ Fatec Carapicuíba6 BIBLIOGRAFIA:SDL (biblioteca) - Origem: Wikipédiahttp://pt.wikipedia.org/wiki/SDL_%28biblioteca%29Compilação de programas C/C++http://www.pontov.com.br/site/cpp/46-conceitos-basicos/95-compilacao-de-programas-ccSDL (Site do projeto)http://www.libsdl.orgSDL (Arquivos dos Tutoriais)http://lazyfoo.net/SDL_tutorials/ Marcel Holanda Cavalcante Ribeiro 1430431113096____________________________________________________________ http://www.fateccarapicuiba.edu.br/Avenida Francisco Pignatari, 650 - Vila Gustavo Correia, Carapicuíba - SP - CEP: 06310-390 (11)4184-8404 / 4183-6849 / 4183-6827 - contato@fateccarapicuiba.edu.br

×