*   >> Leitura Educação Artigos >> science >> programação

Conhecendo o motor Irrlicht 3D - Collision Detection

o download do demo e código fonte

VOLTAR À TUTORIAL INDEX

detecção e resposta de colisão é uma parte vital de praticamente qualquer jogo 3D . Ele pára o seu personagem atravessar paredes ou caindo pelo chão. Surpreendentemente, você vai encontrar mais do que um motor 3D requer que você construir seu próprio sistema de detecção de colisão. Você pode obter alguns testes de colisão ou de intersecção de formas simples, como esferas, caixas de eixo alinhado e linha, mas é até você para realmente testar para colisões, e reagir em conformidade.


Felizmente Irrlicht não inclui detecção de colisão para a maioria das situações comuns que você esperaria encontrar em um jogo 3D. Neste tutorial, vamos construir fora o tutorial terreno e adicione detecção de colisão que pára a câmara se mova através da malha do terreno.

ApplicationManager.h /ApplicationManager.cpp

Com o terreno criado, usando o código do tutorial terreno, que, em seguida, criar um seletor triângulo terreno.


seletores

Triângulo fornecer uma maneira para um objeto, como uma malha de terreno, um modelo 3D ou um nível estático, para relatar os triângulos que existem em uma área específica. Seletores Triângulo são usados ​​extensivamente em detecção de colisão.

Em seguida, coloque o seletor de triângulo criamos como o seletor de triângulo para o terreno, chamando o funcion ISceneNode setTriangleSelector. Isso pode parecer um pouco redundante, vendo como que acabamos de criar o seletor do mesmo objeto terreno que agora fornecendo o seletor de volta para.

Isso é feito porque enquanto o selector triângulo criamos é aquele que é otimizado para trabalhar com malhas de terreno, Irrlicht lhe dá a oportunidade de criar o seu próprio selector triângulo costume, se você precisa. Nesse caso, seu próprio selector triângulo costume, e não um criado pelo próprio objeto terreno, seria fornecido para a função setTriangleSelector.

Neste ponto, o terreno tem uma maneira de detectar que triângulos pode ser envolvido em um colisão, mas isso por si só não vai parar a câmara se mova através dele. Para isso criamos um Response Colisão Animator.

Isso é feito chamando a função ISceneManager createCollisionResponseAnimator, fornecendo tanto o selector triângulo ea câmera.

Por padrão, a função createCollisionResponseAnimator irá criar um elipsóide em torno da câmera, o que significa que a câmera irá colidir com o terreno como se que ocupava praticame

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.