Historique des modifications - Message

Message #3775

Sujet: Création d'un système Sauvegarde/Chargement


Type Date Auteur Contenu
Dernière modification 01-04-2008 12:13:12 bestben
Bonjours
Dans ce tuto je vais abordé les système de sauvegarde/chargement,
je sait que le temps est beaucoup au mmorpg/fps en ligne mais pouvoir sauvegarder des informations est toujours utile.
Un "gestionnaire" de fichier existe dans irrlicht mais j'utiliserai directement du c++ grâce à fstream qui pourra sur un long terme vous permettre de faire plus de choses je pense.
ATTENTION je ne vais pas vous montrer un système ultra perfectionné qui vous sauvegarde tout votre jeux mais des bases pouvant vous aider :

Système de sauvegarde :
bon il va se composer des 2 fichiers Sauvegarde.cpp et Sauvegarde.h
//Sauvegarde.h

#ifndef DEF_SAVE
#define DEF_SAVE

#include <iostream>
#include <irrlicht.h>
#include <fstream>

class Sauvegarde
{
    public:
    Sauvegarde(char* fichier, irr::scene::ICameraSceneNode* camerafps, std::string Nom, int Vie);
    ~Sauvegarde();
    void Save();

    private:
    irr::scene::ICameraSceneNode* m_camerafps;
    char* m_fichier;
    irr::core::vector3df posCam;
    int m_Vie;
    std::string m_Nom;
};

#endif

bon pour l'instant rien de très difficile
//Sauvegarde.cpp
#include "Sauvegarde.h"

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
using namespace std;

Sauvegarde::Sauvegarde(char* fichier, irr::scene::ICameraSceneNode* camerafps, std::string Nom, int Vie)
{
    m_fichier = fichier;
    m_camerafps = camerafps;
    m_Nom = Nom;
    m_Vie = Vie;
}

Sauvegarde::~Sauvegarde();

void Sauvegarde::Save()
{
        if(m_fichier && m_camerafps)
        {
        posCam = m_camerafps->getPosition();
        ofstream sauvegarde(fichier, ios::out | ios::trunc);
        if(sauvegarde)
        {
           sauvegarde << "Pos X,Y,Z" << "\
" << posCam.X << "\
" << posCam.Y << "\
" << posCam.Z << "\
" << endl;
           sauvegarde << "Perso" << "\
" << m_vie << "\
" << m_nom  << endl;
        }
        sauvegarde.close();
        }
}

voilà le système de sauvegarde est fini il ne vous reste plus qu'à déclarer votre objet dans votre main() et d'appeler
Sauvegarde(char* fichier, irr::scene::ICameraSceneNode* camerafps, std::string Nom, int Vie)

si vous voyez des erreurs ou des améliorations n'hésitez pas à les faire partager lol

Prochaines étapes le chargement =>
Création du message 31-03-2008 20:20:05 bestben
Bonjours
Dans ce tuto je vais abordé les système de sauvegarde/chargement,
je sait que le temps est beaucoup au mmorpg/fps en ligne mais pouvoir sauvegarder des informations est toujours utile.
Un "gestionnaire" de fichier existe dans irrlicht mais j'utiliserai directement du c++ grâce à fstream qui pourra sur un long terme vous permettre de faire plus de choses je pense.
ATTENTION je ne vais pas vous montrer un système ultra perfectionné qui vous sauvegarde tout votre jeux mais des bases pouvant vous aider :

Système de sauvegarde :
bon il va se composer des 2 fichiers Sauvegarde.cpp et Sauvegarde.h
//Sauvegarde.h

#ifndef DEF_SAVE
#define DEF_SAVE

#include <iostream>
#include <irrlicht.h>
#include <fstream>

class Sauvegarde
{
    public:
    Sauvegarde(char* fichier, irr::scene::ICameraSceneNode* camerafps, std::string Nom, int Vie);
    ~Sauvegarde();
    void Save();

    private:
    irr::scene::ICameraSceneNode* m_camerafps;
    char* m_fichier;
    irr::core::vector3df posCam;
    int m_Vie;
    std::string m_Nom;
};

#endif

bon pour l'instant rien de très difficile
//Sauvegarde.cpp
#include "Sauvegarde.h"

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
using namespace std;

Sauvegarde::Sauvegarde(char* fichier, irr::scene::ICameraSceneNode* camerafps, std::string Nom, int Vie)
{
    m_fichier = fichier;
    m_camerafps = camerafps;
    m_Nom = Nom;
    m_Vie = Vie;
}

Sauvegarde::~Sauvegarde();

void Sauvegarde::Save()
{
        if(m_fichier && m_camerafps)
        {
        posCam = m_camerafps->getPosition();
        ofstream sauvegarde(fichier, ios::out | ios::trunc);
        if(sauvegarde)
        {
           sauvegarde << "Pos X,Y,Z" << "\
" << posCam.X << "\
" << posCam.Y << "\
" << posCam.Z << "\
" << endl;
           sauvegarde << "Perso" << "\
" << m_vie << "\
" << m_nom  << endl;
        }
        sauvegarde.close();
        }
}

voilà le système de sauvegarde est fini il ne vous reste plus qu'à déclarer votre objet dans votre main() et d'appeler
Sauvegarde(char* fichier, irr::scene::ICameraSceneNode* camerafps, std::string Nom, int Vie)

si vous voyez des erreurs ou des améliorations n'hésitez pas à les faire partager lol

Prochaines étapes le chargement =>

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
168 invités en ligne
membre en ligne: -
RSS Feed