IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Création d'un plateau de jeu (Qt : QGridLayout)


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Création d'un plateau de jeu (Qt : QGridLayout)
    Bonjour,
    je suis en train de développer un jeu d'échec, et je voudrais tout d'abord créer l'échiquier. J'ai donc pensé à la bibliothéque QGridLayout. Mais je n'arrive pas à comprendre comment elle marche ... Je n'arrive vraiment pas à alterner les cases noires/blanches ...

    Voici le code de échiquier.cpp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include "echiquier.h"
    Echiquier::Echiquier() 
    {
     
    	/********** Initiatlisation des objets case *****************/
     
    	QLabel *caseNoire = new QLabel();
    	caseNoire->setBackgroundRole(QPalette:: Dark);
    	caseNoire->setScaledContents(true);
    	QPixmap pix("caseNoire.jpg");
    	caseNoire->setPixmap(pix);
     
     
    	QLabel *caseBlanche = new QLabel();
    	caseBlanche->setBackgroundRole(QPalette:: Dark);
    	caseBlanche->setScaledContents(true);
    	QPixmap pix2("caseBlanche.jpg");
    	caseBlanche->setPixmap(pix2);
     
        /***********************************************************/
     
    	int col=0;
    	int row=0;
    	int cpt=0;
     
    	QGridLayout *plateau = new QGridLayout();
     
    	//void addWidget ( QWidget * widget, int row, int column)
     
    	plateau->addWidget(caseBlanche, 1, 1);
    	plateau->addWidget(caseNoire, 2, 1);
     
    	plateau->addWidget(caseBlanche, 2, 2);
    	plateau->addWidget(caseNoire, 1, 2);
     
    	plateau->addWidget(caseBlanche, 1, 3);
    	plateau->addWidget(caseNoire, 2, 3);
     
    	setLayout(plateau);
    }
    Si quelqu'un pouvait m'expliquai son fonctionnement ...

    Merci !!

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 617
    Points
    15 617
    Par défaut
    Le problème ne vient pas exactement du QGridLayout...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      QPushButton* n = new QPushButton("noir");
      QPushButton* b = new QPushButton("blanc");
     
      plateau->addWidget(n), 1, 1);
      plateau->addWidget(b), 2, 1);
     
      plateau->addWidget(n, 2, 2);
      plateau->addWidget(b, 1, 2);
     
      plateau->addWidget(n, 1, 3);
      plateau->addWidget(b, 2, 3);
    donne l'image 1

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      plateau->addWidget(new QPushButton("noir"), 1, 1);
      plateau->addWidget(new QPushButton("blanc"), 2, 1);
     
      plateau->addWidget(new QPushButton("noir"), 2, 2);
      plateau->addWidget(new QPushButton("blanc"), 1, 2);
     
      plateau->addWidget(new QPushButton("noir"), 1, 3);
      plateau->addWidget(new QPushButton("blanc"), 2, 3
    donne l'image 2

    Remarques complémentaires :
    * Pourquoi utiliser un QLabel ?
    * créer une classe pour chaque type de case (noir et blanc)
    * faire attention au redimensionnement automatique
    * un petit héritage entre tes QWidgets, ça serait bien (pour que chaque case se détruise toute seule lors de la destruction de l'échiquier)
    * je suppose que tu as prévu des boucles pour créer ton échiquier
    Images attachées Images attachées   

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    vue la nature de ton prjet, je te conseil de regarder QGraphics, qui est surement plus adpaté

  4. #4
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut
    Voilà la méthode que j'avais utilisée pour mon jeu d'échec :

    Un QGraphicsView avec à l'intérieur une QGraphicsScene dans laquelle je positionnais mes cases :

    - Des QGraphicsRectItem que j'avais héritées pour former une QGraphicsCaseItem pour personnalisé la couleur des cases, la position...

    et sur lesquelles je superpostionné mes pièces :

    - des QGraphicsPixmapItem que j'avais également hérités pour mettre mes images de pièces d'échec, la position...

    En éspérant que l'idée t'aide

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci à tous pour vos réponse !
    Bon vu que j'étais bloqué, je me suis mis à coder pour le terminal, sans trop pensé à l'IHM (un peu quand même ^^)

    Un grand merci john ! Je garde ces infos sous le coude, ça m'a l'air parfait !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plateau de jeu/Aide Graphique
    Par RiatJava dans le forum Graphisme
    Réponses: 7
    Dernier message: 04/04/2007, 15h57
  2. Plateau de jeu à hexagones, Java ou Flash ? + aide
    Par PopovSquare dans le forum Développement 2D, 3D et Jeux
    Réponses: 16
    Dernier message: 02/03/2007, 23h59
  3. demande d'aide pour faire un plateau de jeu en java
    Par trodurlejava dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2007, 12h40
  4. [debutant] création d'un terrain de jeu !
    Par sanogara dans le forum OpenGL
    Réponses: 10
    Dernier message: 09/06/2005, 14h47
  5. [debutant] création d'un terrain de jeu !
    Par sanogara dans le forum Débuter
    Réponses: 5
    Dernier message: 05/06/2005, 16h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo