Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Koryushin

16
Site web SFML / Re : Nouveau forum
« le: Mai 03, 2012, 07:28:29 am »
Je parle pas de trouver les nouveaux sujets
je l'avais vu le new en vert merci  :-\

Ce que je veux dire c'est qu'il manque, une petite icône comme sur l'ancien forum.
Si il y a 10 nouveaux messages dans un sujets j'arrive pas à savoir lesquels sont les nouveaux. j'ai surement loupé un truc.
Ce que j'appelle sujet c'est un fil de discussion:(par exemple celui sur lequel on est)
Forum de la communauté SFML » Général » Site web SFML  » nouveau forum


17
Site web SFML / Une icone pour les nouveaux sujets
« le: Mai 02, 2012, 11:51:32 pm »
Bonsoir à tous,
alors je ne sais pas si cela a déjà été évoqué mais sur des longs sujets dés qu'il y a un nouveau message j'ai tendance à relire la page entière pour trouver le nouveau message en question.  :-\
Sur l'ancien forum il y avait une petite icône de couleur et c'était plutôt pratique pour retrouver les nouveaux sujets. Je chipote un peu, mais en tout cas très bon boulot pour le nouveau forum et pour ton investissement pour auprès de la communauté.  ;D

Et vive SFML 2.0 RC   :P

18
Rien de t’empêche de créer toi même ces 2 fonctions.
Je l'ai fais pour les sf::Vector2 et sf::Vector3 pour leur rajouter des fonctions mathématiques ( produit scalaire, vectoriel, norme et autres)

il suffit de créer un fichier .hpp et de l'appeler à la place de SFML/Graphics/Rect.hpp
#include <SFML/Graphics/Rect.hpp>

template <class T>     
sf::Vector2<T> GetPosition(const sf::Rect<T>& rect)
{
   return sf::Vector2<T>(rect.left, rect.top);
}

template <class T>     
sf::Vector2<T> GetSize(const sf::Rect<T>& rect)
{
   return sf::Vector2<T>(rect.width, rect.height);
}
 

après il suffit d'appeler un:
- SetPosition(GetPosition(unrect));
ou
- SetSize(GetSize(unrect));

Biensur c'est qu'un exemple de ce qui est possible, mais ça gène pas trop vu que les attributs de Rect sont publics. Comme y a les 2 implémentations avec Vector2 et avec (x, y) ca me dérange pas plus que ça.

19
Général / Re : Problème "segfault"
« le: Mai 01, 2012, 12:53:35 am »
Oui effectivement, avec la fatigue j'ai pas fait gaffe à mon code.
std::vector<...>::iterator it; // J'ai mis des ... entre les chevrons car je sais pas quel type d'objet tu utilises
                               // Mais a vu de nez c'est un pointeur vers un objet
for(it = fireboss.begin(); it != fireboss.end();)
{
        if((*it)->IsDead())
        {
                delete (*it);
                it = fireboss.erase(it);
        }
        else
        {
                (*it)->Movefire(5);
                ++it;
        }

 

Le code avec les itérateurs, complètement corrigé grâce à lezebulon

20
Général / Re : Problème "segfault"
« le: Mai 01, 2012, 12:32:10 am »
Le problème c'est qu'il y a pas beaucoup d'explication ni de code pour pouvoir t'aider.  :-\
je présume que fireboss est un std::vector<...> ?  ;)

Pourquoi ne pas passer directement par les itérateurs plutôt que d'utiliser des indices (si c'est bien un std::vector)?

Pour le premier problème je dirais que ca vient de la ligne i-- qu'il faut supprimer.
Premier tour de boucle i vaut 0 donc après le i-- il vaut -1. Au deuxième tour il vaudra donc 0 or fireboss[0] aura été supprimé dans le tour de boucle précédent. Enfin si je dit pas de bêtises.

personnellement  je préfère cette écriture: (question de goût)  ;D
std::vector<...>::iterator it; // J'ai mis des ... entre les chevrons car je sais pas quel type d'objet tu utilises
                               // Mais a vu de nez c'est un pointeur vers un objet
for(it = fireboss.begin(); it != fireboss.end(); ++it)
{
        if((*it)->IsDead())
        {
                delete (*it);
                (*it) = NULL;
                fireboss.erase(it);
        }
        else
        {
                (*it)->Movefire(5);
        }
}

 

Pour le 2 eme bout de code pareil y a pas assez d'elements pour dire ce qui va pas.

21
Fenêtrage / Re : Singleton RenderWindow
« le: Avril 30, 2012, 12:23:25 am »
tu peux passer par une classe template pour créer ton singleton.

////////////////////////////////////////////////////////////
/// Template servant à construire les classes singleton
////////////////////////////////////////////////////////////
template <class T>
class CSingleton
{
public :

        //----------------------------------------------------------------
        // Renvoie l'instance unique de la classe
        //----------------------------------------------------------------
        static T* GetInstance()
        {
                if (!Inst)
                        Inst = new T;

                return Inst;
        }

        //----------------------------------------------------------------
        // Détruit l'instance unique de la classe
        //----------------------------------------------------------------
        static void Destroy()
        {
                delete Inst;
                Inst = NULL;
        }

protected :

        //----------------------------------------------------------------
        // Constructeur par défaut
        //----------------------------------------------------------------
        CSingleton() {}

        //----------------------------------------------------------------
        // Destructeur
        //----------------------------------------------------------------
        ~CSingleton() {}

private :

        //----------------------------------------------------------------
        // Données membres
        //----------------------------------------------------------------
        static T* Inst; ///< Instance unique de la classe

        //----------------------------------------------------------------
        // Copie interdite
        //----------------------------------------------------------------
        CSingleton(const CSingleton&);
        CSingleton& operator =(const CSingleton&);
};

template <class T> T* CSingleton<T>::Inst = (T*)NULL;


 

et ta classe GameWindow hérite de CSingleton de la maniere suivante

class GameWindow : public CSingleton<GameWindow >
{
   friend class CSingleton<GameWindow >;

   protected:

      GameWindow ();
      ~GameWindow();
    ...
};

 


22
Fenêtrage / Re : Singleton RenderWindow
« le: Avril 29, 2012, 08:13:43 pm »
En fait pour les attributs static, ils faut abord les initialiser en dehors des méthodes.
En début de ton fichier GameWindow.cpp ou il faut écrire :

sf::RenderWindow* GameWindow::screen = (sf::RenderWindow*)NULL;
GameWindow* GameWindow::instance =(GameWindow*)NULL;

en déclarant instance comme un pointeur dans le .h

23
Fenêtrage / Re : Problème lors du déplacement de la fenêre
« le: Avril 28, 2012, 07:13:46 pm »
Si jeu hérite de screen alors tu as 2 prototypes différents de run().

Il faut que la méthode run() de jeu est le même prototype que celui de screen non ?
int Run(sf::RenderWindow &window);
sinon la méthode run() de jeu n'est jamais appelée.

j'ai lu le thread en travers mais rejette un oeil au tuto du wiki
https://github.com/SFML/SFML/wiki/TutorialScreens
et adapte en conséquences

24
Graphique / Re : [SFML 2.0] sf::Text problème
« le: Avril 17, 2012, 07:23:12 am »
Salut, le problème a déjà été évoqué et il semble y avoir un début de solution dans ce post:
http://fr.sfml-dev.org/forums/index.php?topic=7544.0


25
Général / Re : Re : Re : Quel conteneur pour une map?
« le: Avril 16, 2012, 07:36:07 am »
Y a des petites optimisations qui existent pour booster un peu le fps.
entre autre n'afficher que ce qui est visible à l'écran, optimiser les boucles for() en faisant des ++obj au lieu de obj++ etc..
oO
Je suis assez surpris par ta réponse. N'afficher que ce qui est visible à l'écran est loin d'être une petite optimisation. À moins que le module graphique ne gère ça de façon automatique, ça fait une énorme différence. En tout cas avec SFML 1.6 ce n'était pas géré automatiquement, je ne sais pas ce qu'il en est exactement avec SFML 2.0.

Et peux-tu expliquer en quoi un ++obj serait avantageux par rapport à un obj++ ?

Bah c'est pas si dur que ça si on prend le temps, comprendre comment sfml fonctionne.
-Extraire le rectangle englobant de la vue courante,
-Soit tester si les Sprites de notre map sont dans le rectangle de la vue. (Fonction sf::Rect::Intersects())
-Soit s'arranger pour que nos boucles for() bouclent en fonction du rectangle de la vue.

26
Général / Re : Quel conteneur pour une map?
« le: Avril 15, 2012, 11:02:47 pm »
Y a des petites optimisations qui existent pour booster un peu le fps.
entre autre n'afficher que ce qui est visible à l'écran, optimiser les boucles for() en faisant des ++obj au lieu de obj++ etc..

27
Général / Re : Vérification pointeur null.
« le: Avril 14, 2012, 11:05:42 pm »
Comme dit plus tôt ca fait longtemps que je ne travaille plus avec les tableau mais il me semble qu'il faut initialiser de la sorte. J'ai la flemme d'aller voir le tuto sur les tableau du site du zero.  ;)

Item *m_item[6][64];

Inventory::Inventory(sf::RenderWindow *app)
{
    m_app = app;
    int i;
    int u;

    for(i = 0; i < 6; i++)
    {
        m_item[i] = new Item[64];
        for(u = 0; u < 64; u++)
        {
            m_item[u] = new Item;
            m_item[i][u] = NULL;
        }
    }
}

Enfin un truc dans le style.

28
Graphique / Re : [SFML 2.0] Chargement de sf::Texture
« le: Avril 14, 2012, 10:58:14 pm »
Je suis pas sur mais le sprite est il passé par reference? Sinon ça peut expliquer le problême.

29
Général / Re : Vérification pointeur null.
« le: Avril 14, 2012, 10:55:40 pm »
Je pense à une mauvaise initialisation du tableau à 2 dimensions m_item.
J'aime vraiment pas ces bestioles en c++. Je prefere leur équivalent de la STL.
Comme je galérais avec les tableau à 2 dimensions j'utilisais du coup un tableau à 1 dimensions bien indicé.

Bref Comment est initialisé le tableau en question ?

30
Graphique / Re : [SFML 2.0] RenderStates Manquant?
« le: Avril 13, 2012, 06:22:02 pm »
RenderStates.hpp fait parti de Graphics donc tu peux l'inclure en faisant #include <SFML/Graphics.hpp>
ou <SFML/Graphics/RenderStates.hpp>

anything