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 - zessirb

Pages: [1]
1
Graphique / Re : Tableau de textures statique, loadFromFile() ?
« le: Mai 12, 2015, 07:12:53 pm »
En l'absence de solution, j'abandonne l'idée d'utiliser un tableau de textures statiques ; je l'ai rendu non statique et tout a fonctionné instantanément. Je me le permet car je n'ai que 9 instances de jeton. Merci quand même d'avoir essayé, hanka et math  :)

2
Graphique / Re : Tableau de textures statique, loadFromFile() ?
« le: Mai 07, 2015, 02:49:07 pm »
Au lieu d'utiliser plusieurs textures, regroupe les images dans une seule image. Ainsi tu n'auras qu'une texture sur laquelle travailler.
Étant donné la taille de mon projet, je comptais réserver ça pour un autre programme : j'essaye de ne pas m'attarder pour l'instant sur tous les éléments nécessaires pour un jeu de taille conséquente, mon objectif est de réussir à faire un programme simple et fonctionnel avec la SFML, je préfère y aller petit à petit sans me compliquer la tâche.


Ensuite, dans ton code actuel tu place une texture sur un sprite sans même vérifier si la texture est "loader". 
A l'inverse de loadFromFile, setTexture est de type void ; pour vérifier si la texture est bien appliquée au sprite, j'ai utilisé la fonction getTexture en vérifiant si la référence retournée était NULL ou pas :
void Jeton::modifierEtat(int p_etatJeton)
{
    m_etatJeton = p_etatJeton;
    m_sprite.setTexture(m_texture[p_etatJeton]);
    if (m_sprite.getTexture() == NULL)   // La condition n'est jamais vérifiée !
        std::cout << "sprite sans texture !";
}
Rien ne s'affiche.
Pour vérifier que ce n'est pas juste moi qui ne sait pas me servir de la fonction, j'ai placé la condition avant le setTexture :
void Jeton::modifierEtat(int p_etatJeton)
{
    m_etatJeton = p_etatJeton;
    if (m_sprite.getTexture() == NULL)   // Crash au lancement du programme
        std::cout << "sprite sans texture !";
    m_sprite.setTexture(m_texture[p_etatJeton]);
}
Crash au démarrage.
Étant donné que je n'ai pas eu de crash avec le premier code, il y a bien une référence à une texture ... Est-ce que cela veut dire que le tableau de textures pointe vers des textures vides ?


Désolée je me suis un peu égarée du problème j'essayais de comprendre ce que tu voulais faire exactement. L'affichage de carrés blancs signifie que ta texture ne s'est probablement pas chargée. Ton fichier ressources est-il bien dans le fichier de ton projet?
Il serait bien de faire les vérifications en utilisant la console pour afficher le résultat des différents tests pendant la phase de debug.
Pas de soucis, toutes les informations sont bonnes à prendre :)
Mes ressources sont toutes dans le même dossier "ressources" ; la grille se charge sans problème, et j'ai séparé la "sélection" qui indique sur quelle case pointe le joueur dans un nouvel objet. Le sprite se charge sans soucis.

Autre chose, pour ne pas que chaque instance de la classe Jeton retente les loadFromFile, la variable m_textureChargee est maintenant en statique, avec une condition avant le chargement des textures pour que ce dernier n'intervienne qu'une seule fois.


Peut-être que des morceaux de code où mes sprites s'affichent vous aideraient à m'aider ? Voici Selection, que l'on peut déplacer sur chacune des cases :
(click to show/hide)


Edit : J'ai encore réduit le tableau et l'énumération de jeton pour placer croixSelection et cercleSelection dans le fichier Selection.cpp. Je gère donc dans ce dernier un tableau de texture aussi (mais non statique) et tout fonctionne pour la sélection.
Je peux copier le fichier si vous estimez ça utile (mais ça commence à faire un paquet de fonctions).

3
Graphique / Re : Tableau de textures statique, loadFromFile() ?
« le: Mai 06, 2015, 06:24:36 pm »
J'avais cru voir quelque part que le & seul dans une condition permettait de vérifier toutes les conditions même si la première était fausse ; j'ai du me tromper, même si ça ne m'a pas généré d'erreur.

Au niveau de l'enum, j'ai effectivement fait une fonction modifierEtat bien trop longue alors que j'aurais pu me permettre d'écrire seulement deux lignes, je n'avais pas fait attention.
J'ai tout de même modifié m_etatJeton en int comme tu dis pour plus de clarté, même si l'énumération n'était pas fausse.

Mon code est plus clair maintenant (j'en profite pour modifier mon premier post), mais le problème persiste.

4
Graphique / Tableau de textures statique, loadFromFile() ?
« le: Mai 06, 2015, 11:26:34 am »
Bonjour, je bloque depuis un bon moment sur le même souci.
Réalisant un Tic Tac Toe, je ne souhaite pas réaliser sur ce programme un gestionnaire d'objets / de textures / de sprites ; c'est pour cela que mes 10 objets sont stockés en tant qu'attributs dans ma fonction principale de jeu.

Parmi ces 10 objets, il y a la grille, avec laquelle je n'ai pas de problème ;
et il y a le tableau de 9 jetons (pour chaque case où il peut y avoir une croix ou un cercle) que je n'arrive pas à afficher.
Cette classe Jeton étant instanciée 9 fois et utilisant les mêmes textures, mon tableau de textures est donc statique ; je me demandais où devrais-je les charger via loadFromFile() ?

Actuellement, les loadFromFile() sont dans le constructeur de Jeton(), ce qui reviendrait à appeler les commandes 9 fois pour un membre statique ... et ce qui me donne l'affichage de carrés blancs.



Voici les parties essentielles des fichiers de ma classe Jeton et de la classe Jeu.

Jeton.h :
(click to show/hide)

Jeton.cpp :
(click to show/hide)

Jeu.h :
(click to show/hide)

Jeu.cpp :
(click to show/hide)

Si Jeton::positionner(int) n'est pas appelé avec le constructeur, c'est parce que j'ai eu beaucoup de mal à changer le constructeur par défaut pour l'initialisation d'un tableau d'objets, sans succès. C'est plus simple pour moi de faire comme ça.

Si je vous demande de l'aide, c'est réellement parce que je ne suis pas parvenu à résoudre mon problème en recherchant. Merci d'avance et bonne journée :)

Pages: [1]
anything