#0 

15-10-2013 17:38:10

Kaze
Membre
Date d'inscription: 12-03-2011
Messages: 60

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


#1 

15-10-2013 20:37:30

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

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'

Code c++ :

player->getPosition()->getDistanceFrom(object[i]->getPosition());

Hors ligne


#2 

15-10-2013 21:21:25

johnplayer
Habitué
Date d'inscription: 30-09-2007
Messages: 431

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).


core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."

Hors ligne


#3 

15-10-2013 22:06:19

Kaze
Membre
Date d'inscription: 12-03-2011
Messages: 60

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


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
44 invités en ligne
Aucun membre connecté
RSS Feed