Salut, je suis en train d'essayer de faire un jeu (l'awalé pour ne pas le nommer ) avec la librairie Qt.
On me dira que ce serait mieux de faire avec SDL ou openGL ou autre, je suis tout à fait d'accord avec ca mais c'est surtout pour apprendre la lib Qt pour faire des logiciels, peut-être donc après le ferai avec la SDL
Bien cela mis à part, je me pose des questions sur le principe de la programmation évenementielle, en effet comment intégrer le code 'traditionnel' que 'javais fait avec celui de Qt ?
Je m'explique, Qt fait des connexions entre des signaux et des slots, les slots font des executiotns, mais à l'intérieur des slots, comment accéder au reste du programme et des class ?
Bien je suis un peu pris, je reviendrais bientot pour plus de précisions.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Les slots sont des fonctions comme les autres, par exemple, si tu veux connecter le clique du bouton avec le début d'une nouvelle partie:
[quote]
dans ta classe tu déclares un slot: DemarreJeu( );
ensuite dans le constructeur de ta classe:
connect( LeBout, SIGNAL( clicked( ) ), this, SLOT( DemarreJeu( ) ) );
Ensuite l'implémentation de DemarreJeu( ) n'est pas a changer, il suffit de l'adapter à QT, ce qui veut dire que à la place d'un cout ou printf( ) tu va afficher le texte dans un QMultiLineEdit (pour QT 2.30) ou comme tu veux :D:
Rien de plus compliqué pour ça :)
[/quote]
ciao :wink:
__________________________
Grégory S.
eVias Web & Software Solutions.
Développement Web et logiciel en tout genre et Open Source.
[url=http://www.fosdem.org/2008/]FOSDEM 2008[/url]. Venez -y nombreux !
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
Je vois et donc quand j'attends une réponse du joueur qu'il clique sur la case qu'il veut jouer, je mets un while(/* chais pas quoi */) puis regarde quelle case il a retourné dans mon code et non dans le slot associé au clic ?
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Hum, si la case envoi des signals, par exemple si lorsque l'utilisateur clique sur une case, cette case envoie le signal clicked( ) (faut voir quelle classe tu utilise pour les cases) alors tu peux créer un slot qui sera connecté avec ce signal et qui gèrera alros ce clic :)
Sinon je n'ai pas bien compris ce que tu veux dire avec le while( ) :S:
ciao
__________________________
Grégory S.
eVias Web & Software Solutions.
Développement Web et logiciel en tout genre et Open Source.
Dans mon programme, il y a la défintion des var et des class dans la fonction jouer() par exemple, hors lors d'un clic sur une case lors du jeu, ca va faire un signal vers une fonction slot() qui n'est pas dans la fonction jouer() donc elle n'a pas accés aux var et autres classes définies.
Je pense que c'est surtout le principe du codage qui je n'est pas encore compris.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
C'est simple : tu dois utiliser des variables globales pour y avoir accès dans tout le programme. A moins que Qt te laisse le dernier paramètre pour envoyer une référence vers la classe jeu. A toi de voir.
Salut merci pour l'aide mais j'a itrouvé la solution car il y avait d'autres soucis encore.
La solution a été de faire hériter la classe de la fenetre, la classe du jeu en mettant en fonctions virtuelles celles qui sont en rapport avec l'interface.
De plus,j 'ai rajouté un champs choix_case dans la classe fenetre pour récupérer les modifs dues aux slots.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].