#0 

26-04-2008 19:57:12

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

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

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


#1 

26-04-2008 23:32:55

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

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.


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#2 

27-04-2008 01:25:12

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

ok mais je prefere utiliser les fonction de base irrlicht es possible avec le format irr au il vo mieux cree mes map en 3ds??

Hors ligne


#3 

27-04-2008 02:21:57

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

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


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#4 

27-04-2008 11:07:23

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

ok ta pas une idee du code a ajouter??

Hors ligne


#5 

08-03-2009 11:34:14

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

un an apres est ce que quelqu un a une idee du code a ajouter ?

Hors ligne


#6 

08-03-2009 12:23:03

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

oui look j'ai ecrit un mini tuto http://forum.irrlicht.fr/viewtopic.php?id=786

Hors ligne


#7 

09-03-2009 11:02:58

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

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


#8 

09-03-2009 13:09:57

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

c simple tu remplace ta camera pae ton node

Hors ligne


#9 

09-03-2009 13:38:28

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

j avais deja  remplace la camera et maintenant les deux passent a travers !!
je ne crois pas que cela soit plus efficace

Hors ligne


#10 

09-03-2009 17:25:34

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

pff ecoute moi je l'avais deja fait et sa marche niikel

Hors ligne


#11 

09-03-2009 17:44:10

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

pour bien se comprendre : je remplace ma camera par quoi??
explicite un peu je ne te comprends pas

Hors ligne


#12 

09-03-2009 17:46:44

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

remplace le pointeur de la camera par celui de ton node

Hors ligne


#13 

09-03-2009 18:43:49

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

pour le moment tout ce que j arrive a faire c est de rester bloquer dans mon tunnel

Hors ligne


#14 

09-03-2009 19:14:51

franbon2005
Membre
Date d'inscription: 19-09-2007
Messages: 11

pour hardcpp:
merci pour la solution mais les collisions sont collantes je ne peux presque plus bouger mon bonhomme

Hors ligne


#15 

23-07-2011 13:30:53

Superjaco
Membre
Date d'inscription: 22-07-2010
Messages: 20

Dans l'exemple d'irrlicht ou il montre comment loader un .irr il y a aussi le code pour les collisions.

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
Analysé par
880 membres
1424 sujets
11113 messages
Dernier membre inscrit: mandrifidy
23 invités en ligne
Aucun membre connecté
RSS Feed