2010-01-15 8 views
-1

Écriture d'un jeu et en utilisant des événements de souris pour la première fois, mais comme je joue avec eux, les différentes méthodes sont de plus en plus gros. Je veux séparer les éléments d'écoute dans une classe différente, mais j'aurai toujours besoin d'accéder à mes différents objets stockés dans ma classe principale (où les méthodes d'écoute résident actuellement ayant utilisé des outils)Java distinct MouseListener et la performance

Une autre chose que j'ai remarquée, est-ce que lors de l'exécution des événements, ils semblent avoir une vitesse de performance très variable, est-il possible d'améliorer cela?

toute aide/suggestion sont très appréciés

Merci

Répondre

1

Déplacer les champs de la classe principale à une classe « modèle » (qui contient un modèle de votre jeu).

Dans la classe principale, créez le modèle, puis transmettez-le à l'écouteur. En ce qui concerne la performance: Je suggère de déplacer la souris dans un thread qui attend un signal (voir Object.notify()). Dans l'écouteur, mettez à jour la coordonnée actuelle (utilisez AtomicReference et un objet Point), puis envoyez le signal. De cette façon, votre gestionnaire peut faire son travail aussi vite que possible mais quand il ne peut pas suivre la souris, il passera devant (au lieu de rester à la traîne).