*   >> läser Utbildning artiklar >> science >> programming

Lär känna Irrlicht 3D-motor - Collision Detection

ladda ner demot och källkod Omdömen

TILLBAKA TILL Handledningen INDEX Omdömen

Kollisionsdetektering och svar är en viktig del av i stort sett alla 3D-spel . Det slutar din karaktär att gå genom väggar eller faller genom marken. Överraskande, hittar du mer än en 3D-motor kräver att du bygga ditt eget system kollisioner. Du kan få några kollision eller skärningstest för enkla former som sfärer, axel linje lådor och linje, men det är upp till dig att faktiskt testa kollisioner, och agera därefter.

Omdömen

Tack och lov Irrlicht omfattar kollisionsdetektering för de flesta av de vanligaste situationerna du förväntar dig att hitta i ett 3D-spel. I den här guiden kommer vi att bygga ut terrängen handledning och lägg kollisionsdetektering som stoppar kameran från att röra sig genom terrängen mesh. Omdömen

ApplicationManager.h /ApplicationManager.cpp Omdömen

Med terrängen skapats med hjälp av koden från terrängen handledning, sedan skapar vi en terräng triangel väljare.

Omdömen

Triangle väljare ger ett sätt för ett föremål, som en terräng nät, en 3D-modell eller en statisk nivå, för att rapportera trianglar som finns i ett visst område. Triangel väljare används i stor utsträckning i kollisionsdetektering. Omdömen

Vi sätter sedan triangeln väljaren vi har skapat som triangeln väljare för terrängen genom att ringa ISceneNode setTriangleSelector funcion. Detta kan tyckas lite överflödig, se hur vi just skapat väljaren från samma terrängen objekt vi nu levererar väljaren tillbaka till.

Detta görs eftersom medan triangeln väljaren vi har skapat är en som är optimerad för att arbeta med terräng maskor, inte Irrlicht ger dig möjlighet att skapa dina egna triangel väljaren om du behöver. I så fall dina egna triangel väljare, och inte en som skapats av terrängen själva objektet, skulle tillföras setTriangleSelector funktionen. Omdömen

Vid denna punkt terrängen har ett sätt att upptäcka vilka trianglar kan vara inblandade i en kollision, men enbart detta kommer inte att stoppa kameran rör sig genom den. För det skapar vi en kollision Response Animator.

Detta görs genom att anropa ISceneManager createCollisionResponseAnimator funktionen levererar både triangeln väljaren och kameran. Omdömen

Som standard kommer createCollisionResponseAnimator funktionen skapar en ellipsoid runt kameran, vilket innebär att kameran kommer att kollidera med terrängen som om det ockuperade ungefär samma utrymme som en humanoid karaktär. Omdömen

Vi ger

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.