====== MARINE ESPINASSE ====== * Porteur(s) du projet : Marine Espinasse * Date : Mars 2017 * Contexte : Cours de programmation ----- ===== PROJET 1 ===== ===== Processing & la 3D ===== Ce premier projet sous Processing est un essai concernant l'importation et la manipulation d'objets 3D sur Processing. Réalisé grâce aux librairies OBJLOADER et OPENGL, qui ne fonctionnent qu'avec la version 1.5 du logiciel (et antérieure peut être également); où je n'ai pas pu intégrer la CONTROLP5 car elle n'est compatible qu'avec les versions 2.0 et ultérieures du logiciel. {{ :wiki:projets:projets-processing-dsaa1:3d.jpg? nolink}} ===== Fichiers nécessaires pour l'utilisation du code ===== * [[https://proc}}essing.org/download/|Processing 1.5.1]] * {{:wiki:projets:projets-processing-dsaa1:objloader.zip|La librairie OBJLoader}} pour importer des fichiers .obj * La librairie OPENGL pour gérer la 3D et les rendus type textures (même pour les objets non texturés, le rendu des .obj est plus lisse avec cette librairie plutôt qu'avec P3D) ===== Code du Programme ===== /* * * * Marine Espinasse, DSAA 1 Design Graphique Dans le cadre du cours de M. Muti Prototype d'un programme permettant d'importer et de manipuler un objet 3D dans Processing. ATTENTION : ce programme est compatible avec la version 1.5.1 de Processing. Les versions ultérieures ne prennent pas en charge la librairie saito.OBJLoader. PS : ce programme ne comporte pas la librairie controlP5 car elle n'est pas, pour sa part, prise en charge par cette version de Processing. * * * */ import processing.opengl.*; // importe la librairie opengl qui permet de gérer la 3D et les textures dans Processing import saito.objloader.*; // importe la librairie OBJLoader, qui permet d'importer un objet 3D dans Processing float rotX; float rotY; OBJModel model; // déclare le fait qu'on va avoir besoin un modèle .obj void setup (){ // initialisation des variables du programme size (1920,1080, OPENGL); //défini la taille de notre fenêtre model = new OBJModel (this, "dino.obj"); // importe le fichier 3D model.enableDebug(); // fontion de debug model.scale(5); // redimensionne notre objet 3D model.translateToCenter (); // centre l'objet 3D dans la fenêtre noStroke(); // ne met pas de contour aux faces de l'objet 3D } void draw (){ background(200); // couleur du fond lights (); // intégrer des lumières dans notre environnement 3D translate(width/2, height/2); rotateX(rotY); rotateY(rotX);; model.draw (); } void mouseDragged() // permet de faire pivoter le modèle 3D en "cliquer-glisser" avec la souris { rotX += (mouseX - pmouseX) * 0.01; rotY -= (mouseY - pmouseY) * 0.01; } ---- ===== PROJET 2 ===== ===== Pacman via Processing ===== Ce second projet sous Processing est pour moi une expérimentation de jeu, en rapport potentiel avec mon projet de mémoire comme ébauche de prototype. Plus complexe, il utilise les systèmes de classes et de tableaux. A noter qu'il n'est pas encore tout à fait fonctionnel, il présente en effet des latences dans le contrôle du pacman, le joueur doit presser les touches de déplacement à chaque case pour pouvoir ramasser les billes et le jeu ne prend pas en compte le principe de "vies". {{ :wiki:projets:projets-processing-dsaa1:pacman.jpg?nolink |}} ---- ===== Code du Programme ===== {{:wiki:projets:projets-processing-dsaa1:pacman.zip|}}