Le pen représente donc un tonneau issu du FPS ci-dessus. Notez aussi qu’il ne pointe pas sur celui de l’auteur, ce dernier ayant un petit problème de SSL, mais je n’ai strictement rien changé si ce n’est le lien du fichier de texture.
See the Pen 3D objects in CSS with shading by Benjamin SANCHEZ (@B_Sanchez) on CodePen.
Comme vous pouvez le voir, les parties HTML et CSS ne sont vraiment pas folles, rien est à noter.
La partie Javascript en revanche est bien plus fournie, et composée de 4 fonctions que je vais pour une fois vous détailler maintenant.
createAssembly est une fonction dont le rôle est de créer une div et lui ajouter les classes threedee et assembly. Pourquoi ne pas créer cette div simplement en HTML ? je pense que cela à voir avec la création du FPS complet, car il n’y a aucune raison en l’état.
createFace peut sembler très complexe si vous n’avez pas de connaissances en Javascript, mais essayez de le lire en imaginant du CSS, et vous allez voir c’est bien moins compliqué que ce que vous pouvez imaginer ! Comme vous pouvez le voir, son rôle est assez semblable à celui de createAssembly : créer une div et y ajouter beaucoup de CSS, sur lequel nous reviendrons sur la dernière partie.
Maintenant que nous avons toutes nos « pièces », createTube va se charger d’une bonne partie de l’assemblage, en créant un assembly (grâce à la fonction createAssembly), puis en créant toutes les faces nécessaires en cercle.
createBarrel enfin, est une fonction dont le rôle est de créer un tube (avec la fonction createTube), et y ajouter les deux parties rondes en haut et en bas.
Notez qu’il serait tout à fait possible de se passer complètement du Javascript avec un usage judicieux de Sass et d’un moteur de templating permettant l’usage de boucles pour le HTML, vu que ce dernier ne sert qu’a créer des éléments HTML et les styler. Néanmoins, il aurait été bien plus fastidieux de gérer la création de très nombreuses formes, ici simplifiée par la création de fonction permettant de créer des « potions » réutilisables.