Comment gérez-vous les tuiles inégales lors du rendu d'une carte de tuiles?

13

entrez la description de l'image ici

Voici ce que je veux faire avec ma carte de tuiles dont je ne suis pas sûr. Comme vous pouvez le voir, les murs supérieurs sont bien plus grands que les murs inférieurs et latéraux (c'est aussi un problème avec mes coins qui sont des formes étranges [plus comme un L puis un carré] ainsi que plus grands que les 40x40px que mes carreaux actuels sont ).

entrez la description de l'image ici

J'ai également attaché la feuille de tuiles que j'utilise pour les tuiles pour vous montrer à quoi ressemblent les coins et les sommets par rapport au reste des tuiles.

Ce que je pense, c'est que je pourrais peut-être les dessiner en utilisant le même tableau que j'ai si j'utilise la largeur et la hauteur des tuiles au lieu d'un ensemble WxH? Je ne sais pas dans quelle mesure cela fonctionnera, mais si les blocs qui auront des valeurs différentes seront des blocs sur lesquels le joueur / PNJ ne peut pas marcher, ce n'est peut-être pas un problème, encore une fois je ne suis même pas sûr que ce soit viable Solution.

Mon code au cas où vous voudriez voir comment je le gère actuellement: Map.java (pastebin) (edit: je ne le gère pas, signifiait comment je fais actuellement la carte)

tl; dr - comment puis-je prendre ma carte de tuiles 2d et la changer pour avoir des tuiles de différentes tailles? ou existe-t-il une meilleure façon de faire ce que j'essaie de faire? Existe-t-il un nom de méthode que je devrais rechercher lors d'une recherche sur Google?

Latence
la source

Réponses:

19

Il existe deux manières standard de procéder.

  • Divisez vos tailles de tuiles non standard en tailles de tuiles standard. Ainsi, ces bandes de murs deviennent une "pile" de tuiles carrées que vous savez juste placer ensemble dans votre éditeur de niveau. Des jeux comme les premiers jeux Final Fantasy fonctionnaient de cette façon.
  • Laissez n'importe quel morceau de tuile être plus grand que votre hauteur de tuile standard. Alignez les tuiles au bas de votre rectangle de tuile, permettant à tout extra de dessiner plus haut que la hauteur de tuile habituelle. Lorsque vous dessinez votre carte, vous dessinez des tuiles en commençant par l'arrière (les carrés de tuiles plus haut sur l'écran) et en terminant par les tuiles du bas (celles en bas de l'écran). Cela garantit que les hautes tuiles au premier plan sont correctement superposées sur les tuiles à l'arrière-plan. Notez que dans cette approche, vos tuiles sont toujours limitées à une seule tuile en largeur.

Vous pouvez utiliser l'une ou les deux approches. Même les jeux qui utilisent l'approche "se décomposer en piles de tuiles" permettront souvent à certains objets (arbres, etc.) de briser les limites de hauteur des tuiles, et d'imposer simplement un ordre de dessin de carte de haut en bas afin de s'assurer que toutes les couches correctement.

Trevor Powell
la source
2
+1 pour la deuxième approche. Fondamentalement, cela vous fait passer de la carte de tuiles aux objets sur la carte.
Kromster dit soutenir Monica le
Parfait merci beaucoup, je pensais que cela pourrait être quelque chose de similaire à la deuxième option, mais je voulais m'assurer que je le faisais de manière standardisée. = D
Latence
2

Découpez et coupez en dés vos carreaux de tailles impaires pour les adapter aux dimensions standard. L'intérêt d'une carte de tuiles est que vous obtenez beaucoup de vitesse et d'utilité en tout de même taille.

Patrick Hughes
la source