Ponto V!

Home Matemática e Física Utilizando Motores de Física - Página 4
Bruno Crivelari Sanches
Utilizando Motores de Física - Página 4Imprimir
Escrito por Bruno Crivelari Sanches
Índice do Artigo
Utilizando Motores de Física
Criando um Programa Exemplo
Integrando Bullet com Ogre3d
Configurando o Projeto e Download
Todas Páginas

Configurando o Projeto

Agora que o código esta pronto, precisamos incluir as bibliotecas da Bullet nas informações do linker, para isso clique como botão direito do mouse no nome do projeto e escolha propriedades, como mostrado na figura abaixo:

Configurando as bibliotecas no projeto

Na tela que se abrir selecione Linker –> Input e na caixa “Additional Dependencies” adicione as bibliotecas BulletDynamics.lib BulletCollision.lib LinearMath.lib, como é mostrado na figura abaixo:

Bibliotecas a serem adicionadas ao projeto

O projeto esta quase pronto para ser executado, faltando apenas dizer ao Visual onde ele deve ser executado e onde ele pode encontrar as DLLs, para isso, na mesma tela clique em “Debugging”, na caixa “Working Directory” entre com o diretório onde estão os arquivos de configuração do Ogre, no download abaixo você encontra esses arquivos dentro do diretório work, bastando então colocar o caminho para este diretório (na minha maquina, ficou como: “C:\develop\srcs\pontov\artigos\fisica\tutorial_01\work”). Em seguida é preciso dizer ao Visual que ele deve incluir o diretório das DLL´s do Ogre na variável PATH do sistema, isso é para que o Windows possa encontrar as DLLs ao executar a sua aplicação, pois os caminhos contidos na variável PATH é um dos locais onde o Windows procura DLLs, sendo que na minha estação de trabalho o valor ficou como: PATH=C:\develop\libs\ogre\build\bin\debug. Altere o caminho conforme a necessidade do seu sistema, a configuração final pode ser vista abaixo:

Untitled

Agora seu projeto esta pronto para executar!

Considerações Finais

Vimos neste artigo como utilizar uma biblioteca profissional para simulação física, incluindo sua instalação, configuração e integração com um motor gráfico 3d. O código aqui mostrado visa principalmente a simplicidade para facilitar o entendimento dos conceitos envolvidos, sendo que em jogos completos é recomendável organizar esses objetos de forma mais robusta, mas as classes aqui criadas para realizar o gerenciamento podem ser facilmente utilizadas para se testar conceitos ou até mesmo prototipar um jogo simples, ficando como exercício ao leitor expandir estas para suportar novas formas de colisão e experimentar outros tipos de objetos físicos.

Em artigos futuros iremos explorar outros conceitos da biblioteca Bullet e também nos aprofundar nos conceitos apresentados neste artigo, aguardem!

Downloads

Para baixar o código fonte e projetos do Visual Studio clique no ícone abaixo.

O código fonte do projeto também pode ser encontrado no SVN do PontoV clicando-se aqui.




Comentários (15)
  • Luis Eduardo Nery Santos  - Visual Studio 2010
    avatar

    Olá, Bruno.

    Estou criando um jogo estilo Arkanoid, como projeto na faculdade.

    Gostaria de saber se essa biblioteca é indicada para utilizar em jogos 2d, feitos com c++ e OpenGL e também estou com duvidas na hora de configurar a variavel de ambiente no visual studio 2010, pois o VC++ não está habilitado.

    Parabéns pelos posts.

    Obrigado. =)

  • Vinícius Godoy de Mendonça
    avatar

    Para jogos 2D provavelmente será mais fácil utilizar a Box2D:
    http://box2d.org/

    O VC++ só será habilitado depois que você criar o primeiro arquivo .cpp dentro do seu projeto. Crie ele e o menu aparece. :)

  • Luis Eduardo Nery Santos  - Instalação da biblioteca
    avatar

    Valeu Vinicius! vou utilizar essa biblioteca para fazer meu jogo então.

    Mas eu não sei muito bem como instalar bibliotecas, tem algum tutorial pra me indicar?

    ou se for simples tem como dar uma explicada resumida?

    Obrigado. :lol:

  • Bruno Crivelari Sanches
    avatar

    Luis,

    no geral bibliotecas C/C++ seguem sempre um mesmo padrão:
    - extrair os arquivos para algum lugar
    - configurar diretório de includes do compilador
    - configurar diretório de libs do linker
    - nas configurações do seu projeto, adicionar as bibliotecas novas como dependencias

    Nesse artigo é feito tudo isso e ainda inclui o passo extra de compilar a bilbioteca. O processo pode variar uma biblioteca para outra, mas os passos básicos são os que listei aqui.

    Esse outro artigo mostra o processo para uma outra biblioteca (SDL) e explica em mais detalhes alguns conceitos, serve como uma "receita" para instalação de bibliotecas:
    http://pontov.com.br/site/cpp/46-conceitos-basicos/1 55-como-usar-bibliotecas-cc

  • augustowebd  - Versão para impressão
    avatar

    Bruno mais uma vez parabéns pelo excelente artigo, só gostaria de solicitar, não querendo ser abusado, uma versão para impressão completo, porque a versão para impressão atual pega apenas a página corrente.

    Grato.

  • Bruno Crivelari Sanches
    avatar

    Obrigado Augusto!

    Quando clico ali no "Todas as páginas" e depois na impressorinha, funciona com todas as páginas.

    T+

  • Napoleon  - Oiii
    avatar

    :cheer: Ei eu gostei muito de sua matéria, tem como falar do box2D :woohoo:

  • Bruno Crivelari Sanches
    avatar

    Oi Napoleon, vou por na lista aqui! :)

  • japaseki
    avatar

    Fala Sanches, estou tentando executar este projeto mas quando ele entra na tela para escolher o render (opengl ou DIRECTX), ele cai automaticamente....o q poderia ser ?

  • Bruno Crivelari Sanches
    avatar

    Olá,

    você seguiu a risca as instruções da ultima página no ultimo item "Configurando o Projeto" ?

    Se sim, tem que depurar para ver onde ocorre o erro e o porque.

    Para saber como usar o depurador: http://www.pontov.com.br/site/cpp/41-visual-c/216-como-usar-o-depurado r-do-visual-c

    T+

  • matheus bueno
    avatar

    ola,


    parabens pelo post, muito bom mesmo,

    fugindo um, pouco do assunto, eu estou criando um jogo( na verdadde é uma especie d PacMan modficado) em allegro, tem como usar a box 2D junto com o allegro, e se tiver, compensa usar?

    obriigado.

  • Bruno Crivelari Sanches
    avatar

    Para um pacman? Não vejo porque usar biblioteca de física. É um sistema de colisão tão simples.

  • Matheus Bueno
    avatar

    no caso haveriam modificações nele, seria meio temático, por exemplo em uma faze com o tema espaço sideral os fantasmas seriam et's que disparariam lazer's e por ai vai, o pacman também ganharia up grades de acordo com os pontos acumulados, esses up grades poderiam ser, por exemplo, mais tempo invencivel quando se come uma pirula, ou almento na velocidade,pensei q em algumas ocasioens aplicar uma biblioteca de física facilitaria meu trabalho.

    o problema maior no jogo esta sendo a AI, mas eu ta pensando em criar um grafo pra representar o labirinto, e calcular o menor caminho entre o fantasma e o pacman, só q eu to em duvida, se isso vai pesar meu jogo(se existe uma solução melhor ficaria grato em ouvir).

    quanto a biblioteca de fisica, gostaria de saber apenas se existe essa possibilidade, ate pra outros jogos com allegro, o pacman é meu primeiro jogo, é mais pra aprendizado, mas eu gostaria de fazer direitinho.

  • Bruno Crivelari Sanches
    avatar

    Pesar? Depende de onde você vai rodar, se for para um PC, um pacman dificilmente vai pesar.

    Sobre a física não vejo dificuldades em integrar com Allegro, geralmente as bibliotecas são independentes de API, como foi mostrado no artigo.

    T+

  • Aml  - Octree e outros
    avatar

    Bruno, antes de mais nada, Parabéns pelos artigos.
    Eu vou utilizar a engine, mas fiquei com uma dúvida:
    Bullet já trabalha com Octree ou é necessário implementar em caso de múltiplos elementos no cenário?


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