Re: Godot Engine - Projet Arsenal

Posté par Redstar le 21/9/2021 9:30:34
Screenshot de l'interface et mon travail.

Tout comme dans le BGE, il est nécessaire d'organiser son travail, ses blends et ses scripts. Godot permet d'organiser cela sans le quitter. Par contre, sur Godot, on parle en noeud, pas vraiment en objets. C'est-à-dire que, dans un premier temps, il faut un noeud principal, tout le reste devra se mettre dans celui-ci, que ce soit de la même scène ou non (comme le HUD, par exemple).

Ce concept est assez compliqué à appréhender au début mais en pratiquant, l'organisation vient naturellement, cela dépend de l'individu et de sa vision des choses. Vu que mon projet concerne de la 2D et que je désires générer aléatoirement une carte, je dois pour cela mettre un noeud "tilemap 2D".

Comme je l'ai dis plus haut, ce sont des noeuds, pas des objets et donc les scripts s'attachent et s'organisent sur le noeud qui le concerne. Par exemple, le script sur mon noeud "tilemap" se charge de générer le terrain de jeu et à placer mon point de départ, soit le quartier général et un bulldozer.

Le script de la camera gère la camera, du noeud "camera2D", pour le déplacer et le contraindre à des évènements bien précis que j'exposerai plus tard.

Chose importante dans Godot: la manière de positionner les noeuds aura un impact sur la visibilité de ceux-ci, je m'expliques: j'ai deux noeuds "simples", "BuildingObj" et "unitObj", qui doivent contenir respectivement les bâtiments et les unités. J'aurai très bien pu mettre directement ceux-ci en tant qu'enfants, juste après "showpoint" mais en fonction de la génération de chacun, il y aurai des problèmes à long terme, comme une unité qui se cacherai derrière un bâtiment.

Or, l'unité doit être visible, en tout circonstance, donc on dessine le bâtiment d'abord, puis l'unité par dessus. En fait, c'est comme si on posait une feuille transparente sur une feuille blanche. Faire l'inverse cacherai l'un d'entre eux.

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=50774&post_id=589957