Je travaille actuellement avec Phaser, créant un jeu généré de manière procédurale. Je voulais utiliser de l'art de fabricant de RPG dans mon jeu (pour référence, j'utilise le RTP). Je suis tombé sur cet article , qui explique comment fonctionnent les tuiles automatiques. Je suis également tombé sur cette réponse qui renvoie à un autre article qui explique la mosaïque automatique.
Voici la chose, je n'ai aucune idée de la façon dont j'implémenterais quelque chose comme ça. Je suis sûr que je devrais garder une trace de quels ensembles de tuiles peuvent se connecter à quels autres ensembles de tuiles (c'est-à-dire que certaines tuiles ont de l'herbe à l'extérieur et du sable à l'intérieur, donc dans cet exemple, je dois noter que "l'herbe "les carreaux étaient les carreaux extérieurs).
J'ai créé un générateur de cartes (voir ici ) et je voulais établir des connexions transparentes entre mes zones de tuiles. Par exemple, les zones brunes seraient des zones "denses" (forêts, grottes, etc.). Les zones violettes seraient des sols en pierre et la zone verte est l'herbe. Il y a un jeu de tuiles qui fonctionne très bien pour des choses comme ça:
Je voudrais donc utiliser l'herbe en haut à gauche et le troisième ensemble de tuiles, la pierre, qui se connecte à l'herbe.
Quelles sortes de choses devrais-je prendre en compte lors de l'implémentation de la mosaïque automatique à l'aide de ces sortes de tuiles, et existe-t-il un algorithme que je peux examiner pour implémenter?
Réponses:
J'ai implémenté cela (en utilisant le RTP) d'une manière simple (mais assez fastidieuse).
J'ai pris une liste de tous les voisins pour la cellule actuelle, et avec beaucoup de
if
déclarations j'ai dessiné la tuile en 4 tuiles plus petites / quart.Pour moi, cette méthode entraîne des erreurs à peine visibles, mais elles peuvent être résolues en testant certains cas de bord et en les corrigeant en conséquence.
Si vous regardez les images source et l'image résultante dans le fabricant de RPG, vous devriez être en mesure de le faire (peut-être avec quelques essais et erreurs) avec des
if
déclarations, en identifiant le cas actuel pour le quart de mosaïque donné et en dessinant en conséquence .Cette méthode peut être encore améliorée et rendue moins fastidieuse avec des masques de bit (comme mentionné par jzx).
Répondre à votre commentaire:
En ne rendant que les quarts de tuiles, les possibilités diminuent considérablement.
Vous ne devriez pas avoir à manipuler des tuiles sur des tuiles, car elles devraient être sur des couches différentes mélangées alpha ou colorées les unes sur les autres.
De plus, je ne vois pas pourquoi vous auriez besoin de voisins intégrés, mais cela pourrait être traité séparément dans le calcul du voisin, peut-être en utilisant une sorte de cartes (liste de paires qui se mélangent).
La carte est généralement statique et les images sont en basse résolution, vous n'avez donc pas à vous soucier des performances.
la source