JeuWeb - Crée ton jeu par navigateur
Tuiles extérieures - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Tuiles extérieures (/showthread.php?tid=7705)



Tuiles extérieures - xanthius - 09-02-2019

Bonjour !
Ca fait un moment.
Depuis quelques jours déjà, j'ai décidé de me lancer dans un second jeu. Air Carrier se portant bien et étant assez mature, je peux m'autoriser à me lancer dans de nouvelles péripéties.
Pour ce second jeu, je me suis intéressé au plugin de Prélude, PP3DISO.
Au programme donc, l'utilisation de carte iso.
D'où ma première question, pour ce second jeu (que je présenterai dans les mois à venir) je me base sur un système d'île.
Comment dès lors faire en sorte que les tuiles extérieures, celles au contact du background bleu, puisse être différente, par exemple proposer comme sur l'image ci après, un rendu "sable"
enfin viens la question du positionnement, comment procéder pour le choix de la tuiles ? Par exemple savoir qu'elle tuile utiliser, droit ou gauche, haut, bas etc ..
[Image: 19020910333645261.png]


Merci d'avance pour vos réponses !


RE: Tuiles extérieures - Meraxes - 09-02-2019

Une façon simple de faire pour un tablier orthogonale c'est de considérer pour chaque case de terre les quatre cases qui sont autours de lui pour les quatre points cardinaux de base  (i.e. nord, sud, est & ouest).

Ce qui donne, pour une case de terre, 6 types de tuiles possibles :
- 1 tuile de terre pleine sans aucune case d'eau autour (c'est ta tuile de base)
- 4 tuiles avec 1 case d'eau autour (au nord, au sud, à l'est ou à l'ouest)
- 6 tuiles avec 2 cases d'eau autour dont :
    - 4 tuiles avec deux cases d'eau autour "en coin" (i.e nord-ouest, nord-est, sud-est ou sud-ouest)
    - 2 tuiles avec deux cases d'eau autour opposées (i.e nord-sud ou est-ouest)
- 4 tuiles avec 3 cases d'eau autour (i.e. avec 1 case de terre autour au nord, au sud, à l'est ou à l'ouest)
- 1 tuile avec 4 cases d'eau autour (i.e. une île).

Ce qui fait 16 tuiles différentes en tout, avec 6 types de tuiles distinct.

Il faudra donc dessiner ces 16 tuiles (ou récupérer les assets correspondant). En vérité, ça ne demande réellement que 5 nouvelles tuiles (si on fait symétrique) puisque toutes les tuiles sont des variations des 6 types de tuile de base ci-dessus (par rotation) et que tu as déjà, normalement, la tuile de case de terre pleine.Lorsque tu dessine le sable il faut aussi faire attention à ce que les différentes tuiles "s'emboitent bien", c'est à dire que les séparations terre/sable/eau s'arrêtent bien au même niveau sur les bords de la tuile).

Ensuite il faut simplement  une fonction qui retourne la tuile adéquate en fonction de l'un des 16 cas dans lequel se trouve la case de terre.

Il y a parfois un codage sur 4 bits qui est utilisé : il consiste à dire que chaque bit indique la présence ou non d'une case d'eau sur l'un des quatre points cardinaux (par exemple 15 = '1111' en binaire représente une tuile avec 4 case d'eau autour ; 14 = '1110', 13 = '1101', 11 = '1011' et 7 = '0111'  représentent des tuiles avec 3 cases d'eau autour ; 0 = '0000' indique une tuile sans aucune case d'eau autour, etc.). Ensuite il suffit d'ordonner les tuiles dans un tableau de façon à ce que le codage de l'indice de la tuile coïncide avec sa représentation.

Remarque : on peut aussi prendre en compte les cases diagonales pour affiner encore plus la représentation et c'est le même principe mais avec beaucoup plus de cas à gérer (le codage est sur 8 bits donc il y a 256 cas possibles).

Je ne sais pas si c'était ce genre de réponse que tu voulais ; c'est comme ça que j'ai compris la question.