Ponto V!

Home OpenGL Um ambiente para criar jogos com a SDL e a OpenGL
Vinícius Godoy de Mendonça
Um ambiente para criar jogos com a SDL e a OpenGLImprimir
Escrito por Vinícius Godoy de Mendonça

O passo inicial para qualquer desenvolvedor de jogos é escolher quais tecnologias usar e preparar um ambiente para elas. Para manipular o ambiente de janelas, carregar imagens do disco ou reproduzir sons, contaremos também com a ajuda da STL. Por fim, para desenhar em diversos exemplos, usaremos a OpenGL. Tudo isso será desenvolvido da IDE Code::Blocks, que é pequena e gratuita. Quando falamos em C++, preparar esse ambiente geralmente não é uma tarefa fácil. Esse tutorial visa explicar como cumpri-la, de maneira organizada e compreendendo cada passo da configuração.

Ao invés de OpenGL direto, você pode preferir criar um ambiente usando a Ogre no seu Code::Blocks. Nesse caso, recomendo que siga esse outro tutorial, falando sobre o assunto. A Ogre não será tratada nesse blog… pelo menos por enquanto!

Criando a pasta inicial

Muitas dores de cabeça são evitadas se você criar uma pasta para conter todo o seu ambiente do C++. Essa pasta deve ser criada preferencialmente na raiz do seu sistema de arquivos e conter um nome de apenas 8 letras, sem caracteres especiais. Por exemplo: D:\DevJogos

Dentro dessa pasta, crie também uma subpasta chamada dlls. Essa subpasta servirá para você colocar todas as bibliotecas (tais com a SDL) que devem ser acessadas para que o jogo rode. Um bom nome para ela seria: D:\DevJogos\Dlls

Adicionando um caminho ao path

Muitas pastas, como a pasta de dlls deverão ser adicionadas ao path. Por padrão, o Windows apenas procura por arquivos que estejam no mesmo diretório da aplicação sendo executada ou que estejam listados na variável de ambiente path. Muitos tutoriais de jogos, quando se deparam com uma dll, recomendam que você a jogue em pastas como windows\system32. Essa pasta já está no path de qualquer versão de windows. Entretanto, fazer isso não só misturará dlls secundárias com dlls do sistema operacional, como também reduz o nosso controle sobre o que tem ou não tem instalado. Por isso, vamos iniciar explicando como adicionar a sua própria pasta de dlls ao path.

Para acrescentar um diretório ao path, siga os passos abaixo:

  1. Abra as propriedades do sistema no painel de controle. A janela também pode ser aberta pressionando simultaneamente a tecla do windows e a tecla break;
  2. Clique na aba “Avançado” e em “Variáveis de Ambiente”;
  3. Na parte de baixo, procure a variável chamada Path:

    A variável de ambiente PATH

  4. Clique em editar. Adicione um ; e o seu diretório de dlls.

    Adicionando o diretório de dlls

Instalando o Code::Blocks

Podemos compilar os programas em C++ com um compilador padrão o GNU gratuito, que no caso do Windows é o MinGW. Na verdade, seria até possível escrever nossos próprios programas usando apenas o MinGW e o bloco de notas. Mas essa é uma tarefa tediosa e pouco produtiva. Para facilitar a edição de código, controlar automaticamente o make e ainda fornecer uma interface amigável com o depurador, vamos instalar o Code::Blocks. O Code::Blocks é uma IDE gratuita, leve e poderosa e tem versões para diversos sistemas operacionais.

Em alguns outros sites, você encontrará recomendações para instalar o DevCpp. Eu discordo radicalmente dessa opinião. O DevCpp é pobre em recursos, não tem boa integração com o depurador e faz uma verdadeira bagunça ao tentar alinhar o código.

O site oficial do Code::Blocks é http://www.codeblocks.org. Antes da versão 8.02, você era obrigado a instalar o Code::Blocks através de uma nightly build. Hoje, com a versão inicial, isso não é mais necessário. Também acompanham o compilador MinGW e o depurador Gdb na versão oficial, não sendo mais necessário baixa-los manualmente.

Para instalar faça o seguinte:

  1. Entre na página de downloads do Code::Blocks;
  2. Escolha o seu sistema operacional. No caso desse tutorial Windows 2000/XP/Vista;
  3. Iremos baixar o codeblocks-8.02mingw-setup.exe (19mb), escolha a opção Sourceforge ou BerliOS e aguarde o download.
  4. Rode o instalador, passe a tela do Welcome e concorde com a licença clicando em I Agree;
  5. Tomando o cuidado de clicar apenas no quadradinho com sinal de + ao lado de cada pasta, abra a pasta “Lexers” e a subpasta ScriptLanguages e selecione as linguagens Lua e Python, que também são interessantes para jogos;Scripts interessantes
  6. Selecione a pasta Graphics Programming;
  7. Abra a pasta Contrib Plugins e selecione os plugins que você achar interessante. Eu gosto dos seguintes: Browse Tracker, Code Snippets, Code Stats, Copy Strings, Profiler, Exporter e o wxSmith. Se você era usuário do DevCpp, vai também gostar do DevPak plugin, que permite a instalação dos DevPaks diretamente.
  8. Clique em Next e selecione o caminho que ele será instalado. Como sugestão ponha na pasta que criamos acima, como D:\devjogos\codeblocks;
  9. Aguarde a instalação terminar e pronto!

Fazendo download da SDL

A SDL é uma biblioteca multi-plataforma, open source, para manipulação de janelas, vídeo, áudio, rede, threads e fontes. Ela facilita muito o desenvolvimento de jogos e fornece ótima integração com a OpenGL. Para instala-la, proceda da seguinte forma:

  1. Entre no site da SDL, e, na área Downloads da barra da esquerda, clique em SDL1.2;
  2. Nos arquivos citados em Development Libraries, selecione o arquivo da SDL para mingw. Por exemplo SDL-devel-1.2.14-mingw32.tag.gz;
  3. No seu diretório de jogos, crie uma pasta chamada libs e lá descompacte o SDL.
  4. Copie o arquivo sdl.dll da pasta bin para a sua pasta de dlls;
    Dica: Sempre que instalar uma nova biblioteca, copie o seu dll para a pasta de dlls. Isso evitará muitas dores de cabeça. Recomendo fazer uma cópia e não mover a dll, pois assim você ainda saberá que dll pertence a que biblioteca. Lembre-se, quando for criar um executável, será necessário anexar todas as dlls que ele utiliza antes de enviar para terceiros.
  5. Repita o mesmo processo para os pacotes SDL_Image e SDL_Mixer. Os sites oficiais desses pacotes podem ser encontrados na área doc wiki, ou clicando aqui e aqui. As distribuições foram feitas para visual C++ 8, mas funcionam bem no MinGW. O nome dos arquivos para baixar será: SDL_image-devel-1.2.10-VC8.zip e SDL_mixer-devel-1.2.11-VC8.zip (as versões podem mudar);

Configurando o Code::Blocks

Agora, veremos cada passo na configuração do Code::Blocks, com explicação sobre o que significam.

Criando um novo projeto

  1. Abra o Code::Blocks;
  2. Clique em File->New->project e selecione Console Application;
  3. Em Project Title, dê o nome do seu projeto. Em folder to create your project in, selecione a pasta project, criada no tutorial anterior.
    Pasta project
  4. Clique em next até finalizar o assistente;

Configurando o compilador

O compilador necessita de arquivos de cabeçalho, com a extensão .h, para saber quais funções estão disponíveis em sua aplicação. Isso vale tanto para os seus arquivos, que ficarão no seu projeto, quanto para arquivos de bibliotecas externas. É necessário indicar a ele onde ficam os arquivos .h de cada uma das bibliotecas externas usadas por você.

Sempre que você adicionar uma biblioteca ao seu projeto, é necessário seguir esses procedimentos. Abaixo, explicarei como fazer a configuração usando como exemplo a SDL:

  1. Para fazer isso, clique em Project->Build Options;
  2. Na árvore do lado esquerdo, clique na raiz (com o mesmo nome do projeto). Caso contrário, você estará definindo a biblioteca apenas para a compilação oficial (release) ou debug do seu projeto. Dessa forma, você define para as duas;
  3. Na guia Search Directories, selecione a opção compiler e clique em add.
  4. Selecione a pasta “include” de sua biblioteca. A SDL é uma exceção à regra. Ao invés da pasta include, devemos adicionar a pasta include\SDL. Exemplo:
    t6
  5. Responda sim a pergunta Keep This as a Relative Path?. Isso permite que você mova sua pasta DevJogos para diferentes unidades de disco (um pendrive, por exemplo); Você notará que o CodeBlocks adicionará o caminho relativo a biblioteca como: ..\..\SDL\SDL-1.2.14\include\SDL
  6. Importante: Para incluir um cabeçalho da SDL, você terá que utilizar o comando #include “SDL.h” e não #include “SDL/SDL.h”; Isso porque já selecionamos a pasta SDL dentro do diretório include. Dessa forma, o código fica mais compatível com o Linux.

Configurando o Linker

A maior dificuldade de montar um ambiente está no linker. O linker precisa saber onde se encontram todos os arquivos .lib, o nome dessas bibliotecas, e quais bibliotecas padrão você está utilizando.

O caminho das libs

O primeiro passo é definir qual é o caminho onde suas bibliotecas se encontram. As bibliotecas são arquivos com nomes iniciados em lib e extensão .a, por exemplo, libSDL.a.

  1. Para fazer isso, clique em Project->Build Options;
  2. Novamente selecione a raiz da árvore situada no lado esquerdo da tela;
  3. Na guia Search Directories, selecione a opção linker e clique em add.
  4. Adicione a pasta lib de sua bibiloteca. No caso da SDL:
    Pasta lib da SDL
  5. Responda sim a pergunta Keep This as a Relative Path?.
  6. Clique na aba Linker Settings;

Linker settings

Você deve dizer ao linker quais são as bibliotecas que você está efetivamente utilizando. O maior problema aqui está em descobrir e indicar corretamente as bibliotecas padrão utilizadas, já que elas não aparecem em nenhum local óbvio. Geralmente, essas bibliotecas estão listadas na documentação dos componentes que você estiver instalando.

No caso da SDL e da OpenGL, fazemos o seguinte:

  1. Clique em Project->Build Options;
  2. Na guia Linker Settings;
  3. Clique em Add e digite mingw32 para adicionar a biblioteca padrão do mingw;
  4. Clique em Add e digite SDLmain para adicionar a biblioteca da SDL;
  5. Clique em Add e digite SDL.dll para adicionar a biblioteca de acesso a dll do SDL;
  6. Clique em Add e digite opengl32 para adicionar a biblioteca padrão da opengl;
  7. Clque em Add e digite glu32 para adicionar a biblioteca padrão OpenGL utilities;

Dica: Se você olhar a pasta lib das bibliotecas não padrão, verá os arquivos .a correspondentes da biblioteca. No caso da SDL, haverá dois arquivos chamados libSDLmain.a e libSDL.dll.a. Isso te dá a dica de que nomes inserir nas linker settings. Note que é necessário repetir esses mesmos procedimentos para as bibliotecas SDL_Mixer e SDL_Image, caso queira trabalhar com elas.

Ainda falta dizer ao linker que nós estamos lidando com uma aplicação para windows. Para isso, em other linker options, coloque a opção -mwindows. Ao final, sua tela deve ficar assim:

Configurações do linker

Com isso, finalizamos esse tutorial! No próximo artigo, vamos ver os primeiros passos para a construção de um jogo. Enquanto isso, se quiser ir brincando com a SDL, recomendo que siga esse ótimo tutorial (em inglês).

Atenção: Alguns usuários recortam e colam a palavra -mwindows desse tutorial, e o sinal de menos é substituído pelo travessão. Isso fará com que o Code::Blocks dê a mensagem: “mingw32-g++.exe: -mwindows: No such file or directory”. Para corrigir o problema, simplesmente apague esse parâmetro e digite-o novamente a mão.

Ajustando o caminho do compilador e do linker

Se você instalou o Code::Blocks pela primeira vez, esse passo não será necessário. Se, ao compilar, o seu Code::Blocks der a mensagem “uses an invalid compiler. Skipping…”, siga os passos desse tópico. Geralmente, numa instalação antiga, caminhos inválidos podem ter sido definidos e seu code::blocks ainda pode estar enxergando-os. Outra opção é seguir esses passos caso você tenha baixado o MinGW manualmente, e tenha optado por uma versão de Code::Blocks sem o compilador. Faça o seguinte:

  1. Clique em Settings, Compiler and debugger;
  2. Selecione a aba “Search directories” e na aba compiler, coloque o caminho correto da pasta include, que se encontra no mesmo diretório do seu compilador. Por exemplo: D:\DevJogos\CodeBlocks\MinGW\include
  3. Clique na aba linker e selecione o caminho correto da pasta lib, que se encontra no mesmo diretório do seu compilador. Por exemplo: D:\DevJogos\CodeBlocks\MinGW\lib
  4. Clique em Toolchain Executables e altere o “Compiler Installation Directory” para o caminho certo do seu compilador. Normalmente basta pressionar o botão auto-detect para isso, mas, caso não funcione, selecione o diretório manualmente. A configuração deve ter ficado similar à abaixo:
    Configurando o caminho do compilador e do linker

Comentários (64)
  • Gustavo  - Excelente tutorial
    avatar

    Gostei muito do tutorial. Estava tendo muitos problemas com o caminho do compilador e do linker, mas com o tutorial esclareceu e facilitou tudo. Valew!!!

  • igor  - re: Excelente tutorial
    avatar

    View image :evil:

    Gustavo Escreveu:
    Gostei muito do tutorial. Estava tendo muitos problemas com o caminho do compilador e do linker, mas com o tutorial esclareceu e facilitou tudo. Valew!!!
  • Vinícius Godoy de Mendonça
    avatar

    Obrigado. Esse problema é mesmo um clássico.

  • Rafael  - Boa!
    avatar

    Otimo tutorial, coisa bem simples que todo mundo devia ler antes de sair por ai instalando quando IDE e configurando super mal.
    Obrigado!

  • Vinícius Godoy de Mendonça
    avatar

    Obrigado!

  • Washington
    avatar

    Muito bom o artigo,mas pretendo usar o MV C++ express você saberia onde posso encontrar um tutorial similar para o mesmo

  • Vinícius Godoy de Mendonça
    avatar

    Não muda praticamente nada.

    Inicialmente, crie um console application e selecione a opção "empty project". Em seguida, configure-o da seguinte forma:

    1. Baixe as libs da SDL para C++ Express;
    2. Configure os includes e libs nas propriedades do projeto, em VC++ Directories (includes em include directory e libs em library directories);
    3. Ainda nas propriedades do projeto, vá em linker->input. Em additional dependencies inclua o nome dos arquivos .lib que vai usar (exemplo: sdl.lib;sdlMain.lib;opengl32.lib;glu32.lib)
    4. No código, antes de fazer

    Código:
    #include <opengl.h>


    faça

    Código:
    #include <windows.h>

    Pronto. :)
    O resto da dicas de organização do ambiente permanecem as mesmas.

  • washington
    avatar

    Aki deu erro concerteza eu errei em algo
    1>------ Build started: Project: Aprendendo_OPENGL, Configuration: Debug Win32 ------
    1>MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
    1>SDLmain.lib(SDL_win32_main.obj) : error LNK2019: unresolved external symbol _SDL_main referenced in function _main
    1>d:\meus documentos\documents\visual studio 2010\Projects\Aprendendo_OPENGL\Debug\Aprendendo_OPENG L.exe : fatal error LNK1120: 1 unresolved externals
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

  • Vinícius Godoy de Mendonça
    avatar

    Seu main está declarado como

    Código:
    int main(int argc, char* argv[])


    ?

    Com a SDL o main deve ter obrigatoriamente essa assinatura.

  • Washington
    avatar

    Se eu aperto F7 =
    ========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
    Se aperto F5 =
    'Aprendendo_opengl.exe': Loaded 'D:\Meus Documentos\Documents\Visual Studio 2010\Projects\Aprendendo_opengl\Debug\Aprendendo_openg l.exe', Symbols loaded.
    'Aprendendo_opengl.exe': Loaded 'C:\Windows\System32\ntdll.dll', Cannot find or open the PDB file
    'Aprendendo_opengl.exe': Loaded 'C:\Windows\System32\kernel32.dll', Cannot find or open the PDB file
    'Aprendendo_opengl.exe': Loaded 'C:\Windows\System32\KernelBase.dll', Cannot find or open the PDB file
    'Aprendendo_opengl.exe': Loaded 'C:\Program Files\Alwil Software\Avast5\snxhk.dll', Cannot find or open the PDB file
    The program '[4640] Aprendendo_opengl.exe: Native' has exited with code -1073741515 (0xc0000135).

  • Vinícius Godoy de Mendonça
    avatar

    Exatamente. Mas seu programa compilou e chegou até a executar, o que indica que o ambiente já está configurado e funcionando. :)

  • Anônimo
    avatar

    bom eu queria criar um jogo mais não consigo :dry: :?:

  • raianne  - Num sei
    avatar

    :dry: num to conseguindo criar um jogo.E ninguem sabe o q eu quero fazer mesmo assim num consigo.>>>>>>>>>>> :angry: :pinch: :pinch: :pinch: :pinch: :pinch:

  • Bruno Crivelari Sanches
    avatar

    Descrevendo o problema que você tem de forma objetiva fica mais simples alguém auxiliar. Agora apenas dizendo de forma abstrata que não consegue fica difícil imaginar qual seria o problema e a dificuldade.

  • Anônimo  - windows 7
    avatar

    C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2 \..\..\..\..\mingw32\bin\ld.exe: cannot find -lSDLmain


    sabe que erro é esse?

  • Anônimo
    avatar

    obrigado

  • SlipiN
    avatar

    Seguinte:Em "Project" a opção "Build Options! não esta acessível para min(fica transparente ,e não da para clicar),dai eu não consigo configurar ele,alguem ai me ajuda!!!!!!! :S

  • Bruno Crivelari Sanches
    avatar

    Carregou ou criou um projeto? Muitas opções só aparecem com projetos carregados.

    T+

  • SlipiN
    avatar

    Ow,vlw cara ,brigadão ae,esse site é muito bom!!! :D

  • SlipiN
    avatar

    Tenho outra duvida,em uma parte do tutorial vcs dizem assim:Copie o arquivo sdl.dll da pasta bin para a sua pasta de dlls; Aonde que fica essa pasta Oo????

  • Vinícius Godoy de Mendonça
    avatar

    Se você está seguindo o tutorial desde o início, é a mesma pasta que você criou no passo "Criando a pasta inicial", e que você adicionou no path.

    Ela vai estar em DevJogos\Dlls

  • SlipiN
    avatar

    Vlw !!agora tah funcionando 100%

  • Alonso  - jogos
    avatar

    :cheer: sim

  • Alonso
    avatar

    CRIA UMA PASTA DE JOGOS NO MEU COMPUTADOR

  • Felipe
    avatar

    Legal, conheci o site através de um link no guj. Muito legal a iniciativa.

  • Luiz Paulo
    avatar

    Muito bom artigo, sempre foi uma dor de cabeça "colocar as coisas pra funcionar" :P

    Só uma duvida, conhece a biblioteca SFML? (Simple and Fast Multimedia Library)

    Tava dando uma pesquisada e ela parece ser mais "apropriada" para jogos indie do que a SDL. Se bem que posso tar falando bobagem, por isso que queria saber sua opinião.

    Abraço

  • Vinícius Godoy de Mendonça
    avatar

    Nunca tinha ouvido falar. Vou dar uma olhada, parece bem legal.

  • Anônimo
    avatar

    Após eu ter configurado tudo não acusou nenhum erro ,entretanto fui testar o triângulo colorido resultante do post: Criando uma janela OpenGL, e não compilou nada, resultou em uma janela console como se eu não tivesse feito nada

  • Vinícius Godoy de Mendonça
    avatar

    Se não compilou é porque sua IDE não está achando o compilador. Você está usando o que? O Code::Blocks?

  • Anônimo
    avatar

    Estou usando o Code Blocks mas era só um erro simples ja arrumei =)

  • Anônimo  - Uma dúvida
    avatar

    Corrija-me se estiver errado. Eu li na internet que para programas os jogos com OpenGL, precisa saber o C++. Eu posso fazer a mesma coisa usando o C? Perguntei porque tenho conhecimentos em C e seria melhor eu continuar com o C do que começar a estudar uma linguagem totalmente nova.

    Agradeço pela atenção.

  • Vinícius Godoy de Mendonça
    avatar

    Sim. A OpenGL é uma API para C, não necessariamente C++.

  • Ítalo  - ...
    avatar

    Vinícus, você se parece muito com um cara de um site sobre linux. Não me lembro o nome do site.

  • Matheus
    avatar

    Valeu cara, bacana, estava precisando mesmo, desenvolvi uma interface gráfica para um projeto de jogo aqui da facul, pelo linux, que é bem mais tranquilo de compilar, mas para disponibilizar ao público precisava ser no compilado no windows.

    Foi de grande ajuda, valeu.

  • Anônimo
    avatar

    acho dificil desculpe mas não consigo :confused:


  • Washington
    avatar

    Vocês saberiam dizer onde acho tutorias sobre como implementar física, sons e outros, mas se possível tudo em 2d.

  • Paulo abreu  - Ola
    avatar

    Ola eu tenho varias duvidas e a prmeira de todas e que eu queria criar jogos iguais gta QUAL progama me recomendaria e a segunda se eu criar um jogo com um desses progamas o game continuaria sendo meu
    tipo a empresa que crio o progama querer o game tbm queria saber se da pra fazer o proprio progama de criação de games com graficos otimos
    e tbm queria saber se tem alguma apostila que poderia me recomendar para aprender a progamar nessa linguajem, Qualquer coisa manda convite pelo facebook o email é pauloabreugato@hotmail.com se ñ achar o facebook tenta esse pauloabreuflamenguista@hotmail.com,
    Mudo muito o email rsrsrs.???

  • Francisco  - SDL atualmente
    avatar

    Tópico muito bem organizado, parabéns! Estou criando uma engine porém estava fazendo tudo na mão(timer,vídeo,tratamento de teclado e mouse)para ambiente windows mas percebi que levaria muito tempo.Então encontrei a SDL mas tenho minhas dúvidas se ela ainda é atualizada(parece que tem a versão 2.0 mas não consegui utilizar para mingw).
    E quanto as bibliotecas image e mixer, quais suas funções(utilidade)?É necessário copiar todas as dlls que estão dentro da pasta C:\devEngine\Libs\SDL_mixer-1.2.12\VisualC\externa l\lib\x86 ?
    ---------------------------------------------------------------------- ------------------------------
    Qual link para cadastro no site pontov ?

    Obrigado!

  • Vinícius Godoy
    avatar

    Olá. Não temos cadastro no site. As contas são apenas para colaboradores.

    Sim, você teria que copiar todas as dlls das bibliotecas da SDL para seu projeto, uma vez que a SDL não fornece a opção de linkagem estática.

    Se quiser um substituto para a SDL, ouvi muita gente falando bem da SFML: http://www.sfml-dev.org/

    Talvez fosse bom você testar.

  • Anônimo
    avatar

    Um pouco mais de informações sobre a SDL:
    * A versão 2.0 esta em desenvolvimento (a um bom tempo), de vez em quando dou uma olhada na lista de discussão e realmente esta em dev, não esta morto, mas esta devagar.
    * A versão que mais esperamos é a 1.3, que traria algumas melhorias e seria ultima versão antes da 2.0

    A 2.0 parece que vai ter muita quebra de compatibilidade por causa de recursos novos.

    Acredito que para usar a 2.0 somente baixando os códigos e compilando por conta própria.

    A biblioteca Image é usada para adicionar a SDL suporte a diversos formatos de imagem, pois a SDL por padrão só suporta BMP.

    O mixer é um sistema de som mais avançado, mais inútil se seu jogo for 3d (a não ser que você queira implementar som espacial no braço).

    T+

  • francisco biaso
    avatar

    Obrigado por detalhar.

  • Francisco Biaso
    avatar

    Obrigado! Vou checar.

  • Maycon  - Não funciona mesmo não dando erro
    avatar

    Olá! tah acontecendo uma coisa estranha, eu compilo o código do site que vc postou pra testar o SDL, porem ele compila sem erro, + na hora de executar ele abre a janela e fecha sem mostra o resultado, o que será que está acontecendo? ja testei vários códigos e acontece a mesma coisa, tipo ele quer pegar + não pega, eu uso windows 8

  • Roger  - Não funcionou
    avatar

    Olá
    Quando executei meu programa foi alegado que não existe o arquivo "SDL.dll" no meu computador.

    ps: eu copiei e colei o código ao final do post e segui todos os passos de instalação e configuração no post anterior

  • Roger
    avatar

    Opa, mil desculpas
    Este comentário refere-se ao código da postagem seguinte ("Criando uma janela SDL";)

  • Roger
    avatar

    Desculpe mais uma vez
    Eu simplesmente tinha alterado a localização da pasta "Dlls" e não fiz as devidas mudanças no "path"
    Porém apareceu outro erro que eu não consegui corrigir: quando executa o programa, a seguinte mensagem aparece: "cannot find -lSDL_image.dll"

  • Roger
    avatar

    Olha o chato aqui mais uma vez.
    O problema era o seguinte:
    Eu baixei versões atuais dos features do SDL (SDL_image e SDL_mixer 1.2.12).
    A pasta lib dessas versões não contem diretamente as "dll's" do pacote, mas duas subpastas com "dll's".
    Eu estava configurando apenas utilizando a pasta lib diretamente, sem escolher qual das duas subpastas eu queria utilizar.

    Desculpe-me pelo transtorno gerado. Eu ODEIO configurações. Pior ainda quando é necessário para eu fazer algo que gosto. --'

    Muito obrigado pelos tutoriais. Continuarei a lê-los. o/

  • Fernanda  - Erros de referência
    avatar

    Segui o tutorial, mas quando tento compilar um exemplo simples tenho esses erros:

    C:/Users/Fernanda/Desktop/OpenGL 02/main.cpp:30: undefined reference to `glutInitDisplayMode'
    C:/Users/Fernanda/Desktop/OpenGL 02/main.cpp:31: undefined reference to `glutCreateWindow'
    C:/Users/Fernanda/Desktop/OpenGL 02/main.cpp:32: undefined reference to `glutDisplayFunc'
    C:/Users/Fernanda/Desktop/OpenGL 02/main.cpp:34: undefined reference to `glutMainLoop'
    collect2.exe: error: ld returned 1 exit status
    Process terminated with status 1 (0 minute(s), 9 second(s))
    7 error(s), 0 warning(s) (0 minute(s), 9 second(s))

    :(

  • Anônimo
    avatar

    Cara, eu baixei o falcon c++ e ele tem a opção de instalar diversos pacotes, é realmente uma ide muita boa, ótima, mas não muito completa como o codeblocks, não encontrará error se quiser trabalhar com OpenGL em instalação de bibliotecas

  • ViniGodoy
    avatar

    Esse exemplo justamente ensina a configurar a SDL no lugar da glut. Por isso a glut não irá funcionar.

  • Fernando Freire  - Posso instalar o opengl no Visual Studio
    avatar

    Olá eu poderia instalar essas bibliotecas no visual studio mais novo.

  • Anônimo
    avatar

    O opengl não requer instalação, já vem com o visual.

    Aqui temos artigos de como usar o visual: http://www.pontov.com.br/site/index.php/cpp/41-visual-c

  • Anônimo
    avatar

    quero criar um jogo baseado no gta mais nao tenho muita esperiencia em linguagem c muito menos em ultilizacao desses softs citados.. ja busquei varios foruns e tutorias apostila e tudo mais .. a unica coisa q encontro e como monta bibliotecas e baixar e instalar os programas.. gostaria de exemplo e um passo a passo com um jogo no qual eu to muito afim de criar.. ou ate mesmo um passo a passo de um programa mais sutisticado q nao seje aqueles q fikam a janela do promt de comando.. to de saco cheio desse exemplos.. gente pelo q lhi nesse tutorial aki percebi q encontrei a galera certa pra me ajudar nessa questao.

  • Anônimo
    avatar

    Tem vários artigos aqui que mostram muito mais que apenas fazer programas de prompt.

  • Anônimo
    avatar

    oi assim baixei o code::block versao 13.12 ai estalei blz.. ai add as sdls 2.0 so q deu erros na hora de compilar.. sendo q segui os passos do tutorial so q mudeis apenas as versoes.. bom gostaria de saber se refaco tudo denovo usando as sdl 1.2 ou se tem algum passo a passo para usa as sdl 2.0? mas mantendo o code::block 13.12 pq foi o q mais me indentifiquei pelo fato de ser mais interativa q outra versao 8.2.. sei la so me sinto mais avontade cm ela msm.. qm puder me ajuda agradeco desde ja...

  • Anônimo
    avatar

    oi assim baixei o code::block versao 13.12 ai estalei blz.. ai add as sdls 2.0 so q deu erros na hora de compilar.. sendo q segui os passos do tutorial so q mudeis apenas as versoes.. bom gostaria de saber se refaco tudo denovo usando as sdl 1.2 ou se tem algum passo a passo para usa as sdl 2.0? mas mantendo o code::block 13.12 pq foi o q mais me indentifiquei pelo fato de ser mais interativa q outra versao 8.2.. sei la so me sinto mais avontade cm ela msm.. qm puder me ajuda agradeco desde ja...

  • Anônimo
    avatar

    Sem ver as mensagens de erro e o código é impossível ajudar.

    A SDL 2.0 teve mudanças que quebraram compatibilidade, então alguns erros são esperados mesmo.

  • Anônimo
    avatar

    Pra quê se complicar com bibliotecas no Codeblocks, usa um linux, e roda tudo pelo terminal.

  • Anônimo
    avatar

    no meu da erro no 1SDLMain.dll e no 1SDL.dll

  • rodolfo bruno  - Posso fazer isso no ubuntu?
    avatar

    posso utiliza no ubuntu? precisarei de quais bibliotecas?

  • Jádson  - Menu de configuração
    avatar

    Olá Vinícius Godoy, gostei muito do seu tutorial. Contudo, no caso de ser necessário criar menus para o jogo e eventos em butões. Qual seria o procedimento? O SDL possui recursos para isso ou terei que utilizar uma outra biblioteca com por exemplo a wxWidgets?

    Grato desde já pela sua orientação....

Escrever um comentário
Your Contact Details:
Gravatar enabled
Comentário:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):S:!::?::idea::arrow:
Security
Por favor coloque o código anti-spam que você lê na imagem.
LAST_UPDATED2  

Busca

Linguagens

Twitter