Historique des modifications - Message

Message #3067

Sujet: Erreur


Type Date Auteur Contenu
Création du message 21-10-2007 08:01:59 bestben
ok voici mon code
#include <IRR/irrlicht.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>
#include <MYSQL/mysql.h>
#include <string>

using namespace std;
using namespace irr;
//-------------------------------------------------------------------------------


//---------------------------------------------------------------------------------
int main(void)
{
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//Déclaration du pointeur de structure de type MYSQL


    MYSQL mysql;
        //Initialisation de MySQL
        mysql_init(&mysql);
        //Options de connexion
        mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");

        //Si la connexion réussie...
        if(mysql_real_connect(&mysql,"serveur-de-la-chaussee.no-ip.info","bestben","19920512","mmo",0,NULL,0))
        {
            //Requête qui sélectionne tout dans ma table scores
            mysql_query(&mysql, "SELECT * FROM perso");


            //Déclaration des pointeurs de structure
            MYSQL_RES *result = NULL;
            MYSQL_ROW row = NULL;

            unsigned int i = 0;
            unsigned int num_champs = 0;

            //On met le jeu de résultat dans le pointeur result
            result = mysql_store_result(&mysql);

            //On choisie une ligne
            mysql_data_seek(result, 1);

            //On récupère le nombre de champs
            num_champs = mysql_num_fields(result);

            //on stock les valeurs de la ligne choisie
            row = mysql_fetch_row(result);

                //On déclare un pointeur long non signé pour y stocker la taille des valeurs
                unsigned long *lengths;

                //On stocke cette taille dans le pointeur
                lengths = mysql_fetch_lengths(result);

                //On fait une boucle pour avoir la valeur de chaque champs
               for(i = 0; i < num_champs; i++)
               {
                   //On ecrit toutes les valeurs
                   printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");
               }

            //Libération du jeu de résultat
            mysql_free_result(result);

            //Fermeture de MySQL
            mysql_close(&mysql);
         printf("\
");
        }
        else  //Sinon ...
        {
            printf("Une erreur s'est produite lors de la connexion à la BDD!");
        }




//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------

    IrrlichtDevice* device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(640, 480), 16,false,false,false);
    video::IVideoDriver* driver = device->getVideoDriver ();
    scene::ISceneManager* scenegraph = device->getSceneManager ();
    scene::ISceneManager* smgr = device->getSceneManager();
    //On récupère un pointeur vers la GUI.
    gui::IGUIEnvironment *gui = scenegraph->getGUIEnvironment();
//On rend invisible le curseur
    device->getCursorControl ()-> setVisible (false);

SKeyMap keyMap[5];
//avancer
keyMap[0].Action = irr::EKA_MOVE_FORWARD;
keyMap[0].KeyCode = irr::KEY_KEY_Z;
//reculer
keyMap[1].Action = irr::EKA_MOVE_BACKWARD;
keyMap[1].KeyCode = irr::KEY_KEY_S;
//a gauche
keyMap[2].Action = irr::EKA_STRAFE_LEFT;
keyMap[2].KeyCode = irr::KEY_KEY_Q;
//a droite
keyMap[3].Action = irr::EKA_STRAFE_RIGHT;
keyMap[3].KeyCode = irr::KEY_KEY_D;
//saut
keyMap[4].Action = irr::EKA_JUMP_UP;
keyMap[4].KeyCode = irr::KEY_SPACE;

 scene::IAnimatedMesh *room = scenegraph->getMesh("essai.3ds");
    if (room == 0)
    {
        std::cout << "problème de chargement de la salle" << std::endl;
        return 1;
    }
    scene::IMeshSceneNode *Nroom = scenegraph->addMeshSceneNode(room->getMesh(0));
    Nroom->setPosition(core::vector3df(0,0,0));
//On applique une texture à la salle.
    scenegraph->getMeshManipulator()->makePlanarTextureMapping(
        room->getMesh(0), 0.004f);
    Nroom->setMaterialTexture( 0, driver->getTexture("rockwall.bmp") );


scene::ITriangleSelector* selector = 0;

//et tu lui associ le node :
selector = smgr->createOctTreeTriangleSelector(room->getMesh(0), Nroom, 128);
Nroom->setTriangleSelector(selector);
selector->drop();


//tu cree la cam :
scene::ICameraSceneNode *camera = scenegraph->addCameraSceneNodeFPS (0, 500.0f, 300.0f, 0, keyMap, 5, false);
camera->setPosition(core::vector3df(0,15,0));

//puis tu lui associ la collision avec comme surface "selector" :
scene::ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(
selector, camera, core::vector3df(50,50,50),
core::vector3df(0,-1,0),
core::vector3df(0,6,0));
camera->addAnimator(anim);
anim->drop();

    //lumiere
    scene::ILightSceneNode* lum1 = scenegraph->addLightSceneNode(Nroom, core::vector3df(0,1,0),video::SColorf(0.9f, 0.9f, 1.0f, 1.0f), 100.0f);
    scene::ILightSceneNode* lum2 = scenegraph->addLightSceneNode(Nroom, core::vector3df(10,1,0),video::SColorf(0.9f, 0.9f, 1.0f, 1.0f), 100.0f);
    scene::ILightSceneNode* lum3 = scenegraph->addLightSceneNode(Nroom, core::vector3df(20,1,0),video::SColorf(0.9f, 0.9f, 1.0f, 1.0f), 100.0f);
    scene::ILightSceneNode* lum4 = scenegraph->addLightSceneNode(camera, core::vector3df(0,0,2),video::SColorf(0.9f, 0.9f, 1.0f, 1.0f), 200.0f);

//arme
    scene::IAnimatedMesh* arme = scenegraph->getMesh("armeV2.obj");
    scene::IAnimatedMeshSceneNode* Narme = scenegraph->addAnimatedMeshSceneNode(arme);

   //position arme
    Narme->setParent(camera);
    Narme->setPosition(core::vector3df(2,-3,5)); // relatif à la position de la caméra

    //On modifie les propriétés de l'arme
    Narme->setMaterialFlag(video::EMF_LIGHTING, true);
    Narme->setMaterialFlag(video::EMF_FOG_ENABLE, true);
    Narme->getMaterial(0).EmissiveColor = video::SColor(255,0,0,0);
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
    //On affecte une nouvelle police par défaut.
    gui->getSkin()->setFont(gui->getFont("fontLucida.png"));


    //On crée une chaîne de caractères unicode pour pouvoir y mettre des accents.
   wchar_t* message(L"Le probleme est resolu");

    //On ajoute un joli texte, avec bordure, fond et retour à la ligne automatique.
    gui::IGUIStaticText *texte = gui->addStaticText(message,
         core::rect<s32>(20,30,300,140), true, true, 0, -1, true);

    //La zone de texte, dans le coin supérieur gauche.
    gui::IGUIEditBox *editBox = gui->addEditBox(message,
          core::rect<s32>(20,15,200,30));

    //On réutilise la même chaîne de caractères pour le texte du bouton.
    swprintf(message, L"Mise a jour", 224);

    //On rajoute le bouton de mise à jour dans le coin supérieur droit.
    gui::IGUIButton *bouton = gui->addButton(
         core::rect<s32>(220,15,300,30), 0, -1, message);
    //On associe des images de fond aux états du bouton.
    bouton->setImage(driver->getTexture("vert.bmp"));
    bouton->setPressedImage(driver->getTexture("rouge.bmp"));

//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
       driver->setFog(video::SColor(0,215,215,224), false, 2.0,200.0,0.01, true);
    //La boucle de rendu
    while (device->run())
    {
        driver->beginScene(true,true,video::SColor(0,200,200,200));
        scenegraph->drawAll ();
        gui->drawAll();
        driver->endScene ();
       //Si le bouton est enfoncé, le texte de la zone de texte
        //devient le nouveau texte du texte satique.
        if (bouton->isPressed() == true)
            texte->setText(editBox->getText());

}

    device->drop ();

    return 0;
}

Bon je sait le code est pas très propre :p
Et l'erreur est de type fenétre windows envoyer ne pas envoyer

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
171 invités en ligne
membre en ligne: -
RSS Feed