bonjour je crée un mmorpg qui utilise les map au format irr mais imposible de faire de colision pouvez vous m'aider svp
voici le code
#include "define.h" #include <irr/irrlicht.h> #include <iostream> #include <FMOD/fmod.h> using namespace irr; #define TAILLE_MAX 100 /* definition de taille max pour 100 */ char chaine[TAILLE_MAX] = ""; /* definition d'une variable de caractere qui a pour taille taille _max soit 1000 */ void main_menu() { /* inisialisation */ IrrlichtDevice* device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(840, 680)); /* definition du driver opengl */ device->setWindowCaption(L"Game"); /* Titre de la fenetre */ video::IVideoDriver* driver = device->getVideoDriver(); /* parametre irrlicht */ scene::ISceneManager* smgr = device->getSceneManager(); /* parametre irrlicht */ /* chargement d'une map */ smgr->loadScene("data\\map\\map0.irr"); /* chargement de la map 0 */ /* parametre de la camera */ scene::ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0,100.0f,1200.0f); /* definition du type de camera */ camera->setPosition(core::vector3df(0,1000,-500)); /* position de la camera camera->setTarget(core::vector3df(2397*2,343*2,2700*2)); /* parametre de la camera */ camera->setFarValue(12000.0f); /* parametre de la camera */ driver->beginScene(true, true, video::SColor(0,200,200,200)); /* affichage de la scene */ smgr->drawAll(); /* affichage de la scene */ driver->endScene(); /* affichage de la scene */ FSOUND_STREAM *music1 = NULL; /* defiinition des canaux */ FSOUND_Init(44100, 32, 0); /* inisialise fmod */ lecture_fichier("data\\config\\Menu_sound.mpqtext"); /* lecture du fichier de configuration de la music du menu */ music1 = FSOUND_Stream_Open(chaine, 0, 0, 0); /* on charge la music dans le conteneur music1 */ FSOUND_Stream_SetLoopCount(music1, -1); /* le conteneur music1 et en repetition infinit */ FSOUND_Stream_Play(FSOUND_FREE, music1); /* joue le son contenue dans music1 */ while(device->run()) /* boucle tant l'application est active */ if (device->isWindowActive()) /* verification de l'activiter de l'application */ { driver->beginScene(true, true, video::SColor(0,200,200,200)); /* definition du driver (opengl) */ smgr->drawAll(); /* on redecine la scene */ driver->endScene(); /* on termine la scene */ } device->drop(); /* on libere la memoire */ } void lecture_fichier(char non_fichier[80]) { FILE* fichier = NULL; /* creation d'un pointeur */ fichier = fopen(non_fichier, "r"); /* charge le fichier indiquer dans le conteneur fichier */ if (fichier != NULL) /* si le fichier existe alors on l'ouvre */ { fgets(chaine, TAILLE_MAX, fichier); /* on lit le contenue du fichier */ fclose(fichier); /* on ferme le fichier */ } }
Hors ligne
Hello,
Je ne vois aucune parcelle de code présentée ci dessus qui fasse référence à des collisions...?
Un conseil, oubli les collisions Irrlicht et utilise un moteur de physique tel que Ode ou Newton pour ça, c'est plus pénible à implémenter, mais plus solide et plus rapide au final.
Hors ligne
irr n'est qu'un format xml contenant les informations des meshs .3ds,.x,b3d etc à charger....
Oui il est tout à fait possible d'utiliser le système d'irrlicht donc, mais comme dit précédement je le déconseille après tu fais comme tu veux .
Hors ligne
ok ta pas une idee du code a ajouter??
Hors ligne
un an apres est ce que quelqu un a une idee du code a ajouter ?
Hors ligne
oui look j'ai ecrit un mini tuto http://forum.irrlicht.fr/viewtopic.php?id=786
Hors ligne
merci mais cette partie de code ne correspond qu a une version de camera fps pour une camera style rpg la collision n est pas valable
tu ne geres que les collisions avec la camera
si ton bonhomme est devant il passe quand meme a travers les murs mais pas ta camera
j en suis la de mon code ( grande cave preparee avec deled reprise avec irredit(irr) plus bonhmme en md2)
mais les collisions....???
je cherche
Hors ligne
c simple tu remplace ta camera pae ton node
Hors ligne
j avais deja remplace la camera et maintenant les deux passent a travers !!
je ne crois pas que cela soit plus efficace
Hors ligne
pff ecoute moi je l'avais deja fait et sa marche niikel
Hors ligne
pour bien se comprendre : je remplace ma camera par quoi??
explicite un peu je ne te comprends pas
Hors ligne
remplace le pointeur de la camera par celui de ton node
Hors ligne
pour le moment tout ce que j arrive a faire c est de rester bloquer dans mon tunnel
Hors ligne
pour hardcpp:
merci pour la solution mais les collisions sont collantes je ne peux presque plus bouger mon bonhomme
Hors ligne