Si vous avez une application avec une interface graphique travaillant totalement sur le dessin 2D, quelle devrait être la meilleure pratique pour gérer quoi dessiner et où toucher?Meilleure pratique: Modèle de conception pour la navigation d'écran HUD 2D
Un exemple pour mieux comprendre:
J'ai un jeu avec une carte. Sur cette carte, je peux construire des maisons et d'autres choses.
J'ai aussi une barre d'information qui peut être étendue. Sur la barre étendue, je dessine quelques informations sur le jeu et offre également l'interface pour changer différentes valeurs. Si un contact se produit, je dois vérifier si la barre d'information est étendue ou non, pour déterminer si je veux changer quelque chose sur la carte ou quelque chose sur la barre. C'est ce que fait le State Pattern, mais je doute que ce soit le bon, parce que je pense que cela peut être un peu complexe en raison de possibles "sous-états". Donc, fondamentalement, la question: est le modèle d'état (de GoF) la meilleure pratique pour gérer une interface graphique pure?
C'est ce que j'ai fait pour être capable de construire et de positionner des choses sur la carte, mais ce n'est pas une réponse complète pour moi. Qu'en est-il des états qui déterminent, si une boîte englobante est même active? Dans votre cas, je dois gérer plusieurs états pour chaque objet de contrôle. Actuellement, j'essaie d'adapter le modèle d'activité d'Android pour mon cas. Chaque "écran" différent a sa propre implémentation d'état avec 'onTouch(), onDraw(), onStateChange()' – WarrenFaith
La plupart des systèmes d'interface utilisateur auront aussi des états 'visible' ou' enabled' qui peuvent être définis sur un widget donné. La désactiver l'empêchera de recevoir des clics. La corvée maintient alors cet état activé en phase avec l'état du jeu d'arrière-plan qui l'affecte. Les systèmes d'événements peuvent y aider. – munificent
cela sonne mieux ... Je vais essayer de l'implémenter de cette façon. THX – WarrenFaith