web-dev-qa-db-fra.com

libgdx différence entre Sprite et acteur

Je suis en train de parcourir le javadoc et divers didacticiels sur libgdx et j'en suis au stade d'essayer de comprendre les différences entre divers concepts qui me semblent similaires ou fournissent des capacités similaires dans libgdx.

Au début, je pensais que scene2d consistait à créer des éléments interactifs tels que des menus, etc., mais divers didacticiels que je lis utilisent scene2d/acteurs pour les principaux éléments du jeu (c'est-à-dire le joueur, etc.) et d'autres utilisent simplement des sprites.

Quelle est exactement la différence entre utiliser Sprite et Actor (c'est-à-dire scene2D) dans un jeu et quand devriez-vous choisir?

Merci.

33
Neil Walker

Un Sprite est essentiellement une image avec une position, une taille et une rotation. Vous le dessinez en utilisant SpriteBatch , et une fois que vous avez vos Sprites et vos SpriteBatch, vous avez un moyen simple et basique d'obtenir Des images 2D sur l'écran où vous le souhaitez. Le reste dépend de toi.

Actor, d'autre part, fait partie d'un graphe de scène. C'est un niveau supérieur, et il y a beaucoup plus dans un graphique de scène que le simple positionnement d'images. La racine du graphe de la scène est le Stage, qui n'est pas lui-même affiché. Le Stage est un conteneur pour le Actors que vous y ajoutez, et est utilisé pour organiser la scène. En particulier, les événements d'entrée sont transmis via le Stage au Actor approprié, et le Stage sait quand dire au Actor de se dessiner. Un événement tactile, par exemple, n'est envoyé qu'au Actor qui a été touché.

Mais notez que Actor ne contient pas de texture comme Sprite. Au lieu de cela, vous voudrez probablement utiliser Image , une sous-classe de Actor qui est probablement plus proche de Sprite que juste un simple Actor. D'autres sous-classes de Actor contiennent du texte, etc.

Un autre gros avantage des Actors est qu'ils peuvent avoir Actions. Ce sont un gros sujet , mais ils vous permettent essentiellement de planifier une séquence d'événements pour ce Actor (comme un fondu, un déplacement, etc.) qui se produira ensuite de lui-même une fois que vous les définir.

Donc, fondamentalement, Actor fait beaucoup plus que Sprite car il fait partie d'un cadre graphique.

71
Steve Blackwell

C'est plus ou moins une question de goût. Si vous voulez utiliser des actions et une scène, utilisez des acteurs. Les acteurs ne peuvent pas être dessinés directement, vous devez remplacer la méthode de dessin. À l'intérieur, vous pouvez utiliser des sprites.