J'ai un problème délicat, je ne sais pas comment y faire face au mieux: j'ai une tuile animée d'une porte. Lorsqu'il est fermé, il doit être trié dans un sens, mais lorsqu'il est ouvert, il devra être trié d'une manière différente, car il appartient à une autre (tuile voisine).
Voici la porte fermée:
et la porte s'ouvrit:
J'imagine qu'il serait possible de remplacer le système de tri pour de telles tuiles et d'ajuster le tri en fonction du cadre, mais cela semble un peu hacky.
Quelqu'un a-t-il rencontré un scénario similaire? Des solutions élégantes?
Réponses:
Peut-être pourriez-vous faire une porte avec deux objets, sur des tuiles différentes, et n'en montrer qu'un seul à la fois. De cette façon, une porte ouverte pourrait également bloquer le mouvement, ce qui semble un peu réaliste.
la source
Créez trois sprites ...
Lorsque la porte est fermée, dessinez l'image-objet 1 et traitez-la comme un "bloqueur" afin que les joueurs ne puissent pas la traverser.
Lorsque la porte est ouverte, remplacez ce sprite par # 2 (juste le montant de la porte). Ensuite, placez l'image-objet n ° 3 (juste la porte) dans la cellule adjacente dans laquelle la porte se trouverait.
Fermer, c'est simplement retirer la porte et remplacer le poteau par poteau + porte en position fermée.
Avec cette configuration, vous n'avez pas à vous soucier de rendre la porte ouverte dans un ordre spécial. Rendez-le simplement dans l'ordre comme tout autre objet dans le carré où il se trouve.
L'inconvénient est que vous ne pouvez pas avoir le joueur ou tout autre objet sur la place où ira la porte ouverte.
la source
Il y a 2 astuces que j'utilise pour trier en 2D:
Ajoutez la position au sol aux sprites, c'est un point où les sprites touchent le sol (par exemple les pieds des hommes, le tronc des arbres, le cadre des portes) et les trient à la place des pixels des sprites. De cette façon, le sprite ne sera pas affecté par l'animation
Ajoutez des enfants non triables aux objets (par exemple, les hommes peuvent avoir plusieurs enfants qui n'affectent pas le tri - cape, arc, épée, etc., le cadre de la porte a une porte d'enfant). De cette façon, l'animation des sprites enfants n'affecte pas non plus le tri.
la source
La meilleure façon de résoudre le tri des objets est de ne pas trier du tout. Si vous utilisez un tampon de profondeur, vous pouvez tout rendre en un seul passage. Les objets ayant une valeur z supérieure seront plus éloignés que les objets ayant une valeur z inférieure.
Même si votre jeu est en 2D, vous devriez toujours envisager d'utiliser des coordonnées 3D avec un tampon de profondeur, sinon vous allez toujours tanguer avec l'algorithme du peintre .
la source