Je travaille sur un jeu 2D où vous utilisez de la peinture pour ajouter des tuiles à un niveau et en ce moment je travaille pour ajouter des tuiles de chaîne. Je l'ai configuré pour que certaines peintures orientées direction utilisent deux points (un début et une fin) pour déterminer la direction dans laquelle les tuiles pointeront (gauche, droite, haut, bas.) Les tuiles Warp ont ces points, mais elles seront ajouté à deux autres listes (début et fin de chaîne). Le fonctionnement des distorsions est le suivant: si le joueur touche une tuile, il sera téléporté sur la tuile correspondante. Maintenant, si je veux que cela fonctionne correctement, je dois faire en sorte que le joueur ne puisse pas être téléporté dans un mur ou hors de la carte. Je dois donc déplacer le point sur une tuile ouverte exactement à un espace de tout mur.
Quelle serait la meilleure façon de faire cela?
Réponses:
Si tout ce que vous voulez faire est de vous assurer que la tuile cliquée est entourée de tuiles ouvertes, je créerais simplement une fonction qui vérifie les tuiles autour d'elle. Et puis appelez cela sur la vignette cliquée.
Vous pouvez le configurer dans une boucle (imbriquée) ou simplement créer des instructions if pour lui. Donc, en pseudo-code:
Modifier en fonction du commentaire
Il existe deux façons de gérer la situation:
la source
Je pense que vous aurez besoin de trouver le rectangle "libre" le plus proche d'une tuile de chaîne, où le joueur peut s'adapter.
Il y a une question similaire sur stackoverflow. Cliquez pour voir .
la source