Demineur like : des NSButtons créés par programmation ou une autre solution ?
Paisible.fr
Membre
Bonjour,
Admettons que je veuille réaliser une copie de célèbre démineur ! :-\\
Je vois très bien comment réaliser la chose pour le "moteur" en revanche je saurais beaucoup moins comment m'y prendre pour la partie GUI.
Ce qui me viendrais à l'esprit ce serais de faire une création dynamique de NSButtons en fonction de la taille de la grille. C'est à dire créer les boutons par programmation en y association les IBactions, le changement d'image suivant la situation etc...
Mais je me demandais s'il n'y aurais pas quelques choses de plus judicieux pour faire ce genre de choses ...
Et vous, vous feriez comment ?
Admettons que je veuille réaliser une copie de célèbre démineur ! :-\\
Je vois très bien comment réaliser la chose pour le "moteur" en revanche je saurais beaucoup moins comment m'y prendre pour la partie GUI.
Ce qui me viendrais à l'esprit ce serais de faire une création dynamique de NSButtons en fonction de la taille de la grille. C'est à dire créer les boutons par programmation en y association les IBactions, le changement d'image suivant la situation etc...
Mais je me demandais s'il n'y aurais pas quelques choses de plus judicieux pour faire ce genre de choses ...
Et vous, vous feriez comment ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Très juste. Mais ça reste fondamentalement peu ou prou la même chose au niveau du principe...
Même si ça doit simplifier grandement le travail je pense.
Moi je me demandais si d'autres personne ne serait pas tenté par une approche totalement différente.
Genre une NSView où on dessine dedans et suivant la position du clic on dessine autre chose pour changer un case du démineur. Ou que sais-je d'autre...
Un démineur c'est beaucoup de cases... même avec une NSMatrix, c'est pas trop fait pour.
Exhume, exhume... çà m'intéresse et ça servira certainement à d'autres !
Merci à toi d'avance
Questions :
Ben si justement.
NSMatrix a pour but d'éviter de multiples NSControls (donc des NSViews, donc gourmand en ressource), en ne manipulant que des NSCells.
Le seul inconvénient de NSMatrix est sa "rigidité" puisque l'affichage ne peut se faire que dans une matrice à colonnes et lignes de taille fixe.
Pour le démineur ça peut encore aller.
Justement, c'est l'écueil que Schlum a montré : le côté gourmand en ressource.
Si tu veux passer par une custom NSView, les cellules devront être dessinées directement dedans (et non en passant par des NSView intermédiaires), un peu comme pour... NSMatrix !
1. oui, bien sûr.
2. je pense comme Schlum : complexe et gourmand.
- dessin de chaque case
- clique sur une case (en detectant le clic et sa position)
Oui...
Ou d'utiliser une NSMatrix (qui est une NSView) qui va s'occuper à ta place de dessiner les cases (c'est son boulot, après tout), et cerise sur le gâteau, te permet de récupérer le numéro de la colonne/ligne dans lequel le clic souris a eu lieu.
Pour le dessin des cellules, tu peux utiliser NSButtonCell avec affichage en icône et en texte.
C'est exhumé. Mais attention, c'était un de mes premiers projet après les habituels hello world et autres fougères. Donc faudra probablement fermer les yeux sur certaines choses
Si y'a des questions, faudra que je m'y replonge !