J'écris un RTS basé sur des tuiles 2D. Et je veux y ajouter une fonction «pseudo 3D» - des ponts sur les rivières.
Je n'ai pas encore commencé de codage, j'essaie juste de penser comment cela correspond au modèle de détection de collision. Un bateau passant sous le pont et une unité se déplaçant sur le pont finiront par occuper la même cellule sur la carte. Comment les empêcher de se heurter?
Existe-t-il une approche commune pour résoudre un tel problème? Ou je dois implémenter un monde 3D pour ce faire?
2d
3d
collision-detection
rts
aleguna
la source
la source
Réponses:
Vous devrez essentiellement créer une troisième dimension, bien que dans le cas le plus simple, elle puisse se composer de deux valeurs: "au sol / sur le pont" et "sur l'eau / sous le pont".
Une inspiration peut être trouvée dans la façon dont le commandement stratégique avancé le fait: les unités occupent un niveau de hauteur spécifique, ne peuvent se déplacer que sur des niveaux de hauteur adaptés à leur type, sauf s'il existe des caractéristiques spécifiques leur permettant de faire autrement (par exemple des pistes pour avions) et les changer coûte généralement des points de mouvement, avec des pénalités à certains niveaux de hauteur ou à d'autres. Une tuile peut être occupée par un nombre illimité d'unités tant que chacune est à un niveau de hauteur différent.
En cas d'ASC, les niveaux sont:
la source
Vous pouvez ajouter un attribut simple à chaque mosaïque qui spécifie son niveau.
Ainsi, par exemple:
Vous pouvez maintenant trier vos carreaux en fonction de leurs valeurs de calque et les dessiner en bas -> en haut! Cela donnera l'impression que vous avez une certaine profondeur dans votre jeu. La plupart des moteurs de tuiles le supportent. Une autre chose intéressante que vous pouvez ajouter est la transparence de vos textures afin que vous puissiez voir à travers le calque inférieur.
Cela peut être fait avec de l'eau par exemple - imaginez l'eau au niveau 1 et ensuite le fond de l'océan au niveau 0. Si la texture de l'eau est quelque peu transparente, vous pourrez voir le fond de l'océan d'en haut.
la source