Pages: 1
Bonjour,
le titre est peu évocateur mais je n'arrive pas à le résumé autrement. J'aimerais créer un système qui fait que lorsque le joueur est assez proche d'une porte, elle s'ouvre. J'ai pensé a créer un boite de collision autour de ma porte et dès que je détecte la collision (ou plutôt le contact) avec cette zone, la porte s'ouvre. Sauf que je n'ai pas trouvé le moyen de faire que cette zone soit transparente pour le joueur (qu'il ne la voit pas et qu'elle ne l'arrête pas).
Existe-t-il un système avec Newton me permettant de faire ça. J'ai chercher dans la doc de newton sans trouver mon bonheur.
Merci d'avance.
PS : J'utilise Newton 1.5
Hors ligne
a premier vue le plus simple dans ton cas
c'est de faire bêtement un list d'object qui s'active a distance (tu passe par une interface)
et a chaque step de ton game engine tu test la distance joueur, object[i]
tu peut optimiser en calculant les objets visible toutes les 150ms
sinon tu peut crée un ISceneNodeAnimator qui va généré un event dans OnAnimate lorsque la distance un < à x en fonction du joueur
qui seras géré soit via OnEvent (SUserEvent) soit via un interface perso dont ton game engine heriteras avec la porte en question
après newton ne semble pas géré les ghost object qui eux sont dispo dans bullet a vérifier,
notament utiliser comme contact listener, mais dans ton cas ce n'est pas indispenssable
je dirais même que c'est moin éfficient de passer par la physique
ps: pas beusoin de 'collsion box'
Hors ligne
Ou alors tu créé un aabbox3df lié à ta porte qui représente la zone d'activation. Ensuite pour voir si le joueur est dans la Box, tu fais : Box->isPointInside (vector3df position_joueur).
Hors ligne
Je vais prendre la solution de johnplayer qui m'a l'air plus simple a appliqué dans mon cas mais merci pour vos réponse.
Hors ligne
Pages: 1