IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Simulation de lego


Sujet :

Développement 2D, 3D et Jeux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de bobyboby
    Inscrit en
    Septembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 108
    Par défaut Simulation de lego
    Bonjour, je me lance dans un projet d'application de "simulation de lego". j'explique :

    Je voudrais que l'utilisateur puisse réaliser de petites constructions en lego et les visualiser en 3D. Il pourrait choisir d'ajouter telle ou telle sorte de brique, les positionner librement, changer leur couleurs, et faire pivoter la camera dans l'espace pour admirer la construction

    Je pensais faire ça en c++/OpenGl car je connais pas mal. Peu etre en flash possible non?

    Mes 2 problèmes sont :
    - il me faudra une interface pour selectionner les birques, modifier, supprimer etc et je sais pas avec quoi on peut generer comme ça à la demande des objets openGl par exemple(gtk? qt? autre?)

    - techniquement je me demande bien comment gerer l'empilement des briques et faire en sorte qu'elles ne se traversent pas entre-elles.

    voila si vous avez des idées ou suggestions pour ce projet, quel langage utiliser, quelle gestion de l'interface, quel API, n'hésitez pas, merci!

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 543
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 543
    Par défaut
    Simuler des legos je dirais que c'est presque trivial par ce que ce sont des simples cubes avec des cylindres dessus donc il suffit de trouver un tuto qui t'explique comment afficher un simple cube coloré.
    Ensuite c'est vrai que l'empilement est plus complexe à gérer tu peux utiliser arbres binaires,std::map...pour cela.
    Mais c'est un peu comme un tetris.
    Pour l'interface gtk,qt peuvent suffire

  3. #3
    Membre actif Avatar de bobyboby
    Inscrit en
    Septembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 108
    Par défaut
    pour l'empilement j'avais pensé (mais c'est peu etre trop compliqué) que par exemple, tu vois tes briques vues de dessus, et si tu veux ajouter une brique de 6 par exemple ca te colle à ta souris une brique transparente de taille6 que tu peux valider et poser seulement si tu touche une autre brique (un peu façon vieux jeu de strategie pour decider combien de case un batiment doit utiliser sur la map)

    mais pour ça il faudrait "aimenter" la souris pour en gros empecher l'utilisateur de poser la brique n'importe ou et qu'il puisse seulement la placer selon une grille invisible... je sais pas si je suis clair! par exemple si ma grille se compose de case de 10*10, meme si l'utilisateur place sa brique a 8.5, 9.3, elle sera posée a 10, 10.

    et en flash c'est possible? dites moi ce que vous en pensez héhé

    merci!

  4. #4
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 594
    Par défaut
    il existe déjà des logiciels pour jouer au lego virtuellement
    en cherchant un peu, tu peux en trouver 2 gratuits dont un sur le site lego.com
    tu pourras éventuellement t'en servir pour inspiration
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Par défaut
    Pour des legos l'espace doit etre discrétisé. Une unité correspond a l'espacement des "plots" du lego. Ce n'est pas la position de la souris que tu dois imposer mais la position des pieces elle même. Tu calcules la position de la piece dans l'espace discrétisé a partir de la position de ta souris dans l'espace continu.

    Tu peux en effet choisir une vue de dessus pour le positionnement des pieces mais une vue en 3D me parait également tout a fait possible en gérant la position de la piece dans l'espace a l'aide de la molette pour définir sa distance de la caméra.

    Tu peux également mettre en place du magnétisme par rapport aux autres pieces et au sol pour faciliter le placement.

    Apres si tu veux faire un trucs un peu complexe et réaliste ca va se complexifier : compte tu par exemple gérer la physique ? ex : tu pose une piece très longue a l'extrémité d'une autre. A l'autre extrémité de la piece très longue tu continue a empiler des briques par dessus : niveau connections il n'y a pas de problème ca fonctionne seulement la structure est bancale et devrait normalement se casser la gueule.
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  6. #6
    Membre éclairé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Par défaut
    Comme le dit Shenron, lego propose déjà un logiciel de ce type. Je te conseille vivement de le télécharger et de voir ce qu'ils proposent

  7. #7
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 543
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 543
    Par défaut
    Citation Envoyé par bobyboby Voir le message
    pour l'empilement j'avais pensé (mais c'est peu etre trop compliqué) que par exemple, tu vois tes briques vues de dessus, et si tu veux ajouter une brique de 6 par exemple ca te colle à ta souris une brique transparente de taille6 que tu peux valider et poser seulement si tu touche une autre brique (un peu façon vieux jeu de strategie pour decider combien de case un batiment doit utiliser sur la map)
    Pour l'empilement c'est relativement simple oui on peut s'inspirer d'un jeu de statégie et de savoir si à une case donnée il n'ya pas de brique déjà existante.
    Après il faut ramener cela à la 3d éventuellement utiliser des matrices

    mais pour ça il faudrait "aimenter" la souris pour en gros empecher l'utilisateur de poser la brique n'importe ou et qu'il puisse seulement la placer selon une grille invisible... je sais pas si je suis clair!
    si c'est clair ; pour une aimantation j'utilise une bête boucle en x et y avec un décalage de la taille d'une case de 64 par exemple si la case fait 64*64.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    RECTANGLE ptPiece;
    for( y=0;y<taille_grille;y+=64)
    {
     
    for( x=0;y<taille_grille;x+=64)
    {
    if ptPiece.left>=x && ptPiece.top>=y) 
    { ptPiece.left=x;
    ptPiece.top=x;
    ptPiece.right=y+64;
    ptPiece.bottom=y+64;
    break;
    }
    }
    }
    Ainsi on force les coordonnées x et y d'un objet.
    C'est un peu basique si quelqu'un a mieux..
    Après pour qque chose de plus shiadé tu peux prendre un arbre binaire avec des noeuds représentant les briques.
    Si le noeud a des branches alors il y a une pièce attenante bref c'est une suggestion parmi d'autres de toute façon le temps que j'écrive tout cela tu devrais avoir fini de programmer

    et en flash c'est possible? dites moi ce que vous en pensez héhé

    merci!
    oui tout est possible mais tu ne pourras pas avoir de rendu 3d et puis pas d'interface utilisateur.
    Flash c'est bien surtout pour faire des petites animations sur des sites Internet

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Par défaut
    Pour forcer une piece a se placer sur une grille d'un certain pas a chaque fois, tu peux utiliser la convertion en entiers pour forcer une position a être un multiple de ton pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    const float GRID_STEP = 64.0f;
    int caseX = (int)((positionX + GRID_STEP * 0.5f) / GRID_STEP);
    int caseY = (int)((positionY + GRID_STEP * 0.5f) / GRID_STEP);
    positionX = caseX * GRID_STEP;
    positionY = caseY * GRID_STEP;
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  9. #9
    Membre actif Avatar de bobyboby
    Inscrit en
    Septembre 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 108
    Par défaut
    purée terrible les gars vous avez été productifs hier soir! je vous tiens au courant merci je me lance bientot

    pour la physique je pense pas avoir besoin de ça tout de suite, mais c'est vrai que ca pourrait être marrant!

    donc gtk openGl et c++ ? faut pas une version speciale de gtk pour faire du c++ avec? genre gtk++ ou gtk-- je sais pas quoi?

    edit : aaaah je suis blasé le truc de légo il est trop bien fait j'arriverai jamais a faire pareil XD je sais pas trop par quel bout attaquer, deja il faudrait que j'installe toutes les lib gtk opengl etc sur mon ordi ca serait un bon début :p

Discussions similaires

  1. Probleme Voyageur de Commerce - Recuit Simulé
    Par dinver dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/06/2009, 23h26
  2. Développpement d'une application de simulation .....
    Par dada5455 dans le forum OpenGL
    Réponses: 6
    Dernier message: 14/12/2003, 11h27
  3. simuler l'execution d'un message
    Par gaut dans le forum C
    Réponses: 14
    Dernier message: 25/07/2003, 00h01
  4. Simuler un coup de molette sur un memo...
    Par dynobremo dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/02/2003, 12h31
  5. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 20h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo