2010-06-18 4 views
1

J'ai créé un canevas JPanel qui contient tous les graphiques; à savoir JLabel. Pour que les sprites animés fonctionnent, vous devez sur piloter le paintComponent de la classe JLabel étendue. J'ai implémenté avec succès des sprites animés de cette façon.Est-ce une mauvaise pratique? Objets Graphics2D multiples

Est-ce une mauvaise pratique d'avoir un canvas Graphics2D et ensuite avoir plusieurs 'images' dans leur propre Graphics2D?

Répondre

2

Je ne pense pas que ce sera trop lourd depuis le Graphics2D de votre JPanel devrait être le même que celui qui est passé à la JLabel mais avec des limites différentes et des compensations. Ce que je veux dire, c'est que Swing n'alloue pas un nouveau contexte graphique sur lequel vous pouvez afficher pour chaque élément à l'intérieur d'une hiérarchie d'objets, mais il utilise le même avec des capacités différentes. Cela ne signifie pas que panel.getGraphics() == label.getGraphics() mais ni ils sont des obits complètement différents.

Dans tous les cas, si vous avez besoin de faire beaucoup de travail d'animation, je vous suggère d'avoir votre propre classe de sprite

class Sprite 
{ 
    Point2D position; 
    Rectangle2D size; 
    float rotation; 
} 

et de gérer tout au même niveau paintComponent. Ou du moins, je l'ai toujours fait comme Java2D n'est pas comme CoreAnimation qui est fait pour être utilisé sur une base par couche pour le contenu en mouvement/animé.

Questions connexes