#1 

13-08-2007 12:58:08

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.247.14.224
Courriel  Site web

Salut,
Je viens de programmer un petit programme qui créé le code C à ajouter pour ajouter un objet à une scene irrlicht.
Le programme n'est malheureusement pas compatible linux mais juste windows.
Voici l'exécutable : utilitaire.exe
J'espère que ce programme va pouvoir vous aider.

Gp2mv3


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#2 

14-08-2007 11:05:32

Jerry Kan
Membres
Date d'inscription:
Messages: 265
IP: 213.41.232.205
Courriel

si tu fournis tes sources, il ya des chances qu'on puisse faire tourner ca sous linux smile


Hors ligne


#3 

20-08-2007 12:13:56

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.245.147.171
Courriel  Site web

c'est simple comme programme mais il utilise la bibliotheque windows donc je pense que ce n'est pas gagné mais bon voici la source :
main.c

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main(int argc, char *argv[])
{
  printf("Bienvenue dans l'utilitaire d'implantation des models 3D de RoM\
");
  
  char nom[20], chemin[200], sortie[30000], sortie0[300], sortie1[300], texture[200], sortie2[300], sortie3[300];
  char sortie4[300], Z[10], sortie5[300], sortie6[300], sortie7[300], sortie8[300], sortie10[300], scale[10], X[10], Y[10], sortie9[300];
  while(1)
  {
  printf("\
Veuillez entrer le nom du model : ");
  scanf("%s", nom);
  printf("Veuillez entrer le chemin du model 3D : ");
  scanf("%s", chemin);
  printf("Veuillez entrer le chemin de la texture : ");
  scanf("%s", texture);
  printf("Veuillez entrer la position X :");
  scanf("%s", X);
  printf("Veuillez entrer la position Y :");
  scanf("%s", Y);  
  printf("Veuillez entrer la position Z :");
  scanf("%s", Z);
  printf("Veuillez entrer la valeur du scale (1 par defaut):");
  scanf("%s", scale);
  
  printf("\
Voici le code a recopier :\
");
  
  sprintf(sortie0, "// %s\
",nom);
  sprintf(sortie1, "IAnimatedMesh* %s = smgr->getMesh(\\"%s\\");\
",nom, chemin);
  sprintf(sortie2, "IAnimatedMeshSceneNode* n%s = smgr->addAnimatedMeshSceneNode(%s);\
", nom, nom);
  sprintf(sortie3, "n%s->setPosition(core::vector3df(%s,%s,%s));\
", nom, X, Z, Y);   
  sprintf(sortie4, "n%s->setMaterialTexture( 0, driver->getTexture(\\"%s\\"));\
", nom, texture); 
  sprintf(sortie5, "n%s->setMaterialFlag(EMF_LIGHTING, true);\
", nom);
  sprintf(sortie6, "n%s->setScale(core::vector3df(%s,%s,%s));\
", nom, scale, scale, scale);
  sprintf(sortie7, "n%s->setRotation(core::vector3df(0,0,0));\
", nom);
  sprintf(sortie8, "scene::ITriangleSelector* %sselect = smgr->createOctTreeTriangleSelector(%s->getMesh(0),n%s, 32);\
", nom, nom, nom);
  sprintf(sortie9, "//smgr->addLightSceneNode (0, core::vector3df(%s,%s,%s), video::SColorf(0.5,0.5,0.35,0.5f), 50.0f);", X, Z, Y);
  sprintf(sortie10, "metaselect->addTriangleSelector(%sselect);", nom); 
  sprintf(sortie, "    %s    %s    %s    %s    %s    %s    %s    %s    %s    %s\
\
    //Le metaselecteur\
    %s\
\
", sortie0, sortie1, sortie2, sortie3, sortie4, sortie5, sortie6, sortie7, sortie8, sortie9, sortie10);        
  printf("%s\
", sortie);
  
  //Copie dans le press papier
  HANDLE hGlobal; 
  hGlobal = GlobalAlloc(GHND | GMEM_SHARE, sizeof(sortie)+1); 
  char *pointeur; 
  pointeur = (char *)GlobalLock(hGlobal); 
  strcpy(pointeur, sortie); 
  GlobalUnlock(hGlobal); 

  OpenClipboard(NULL); 
  EmptyClipboard(); 
  SetClipboardData(CF_TEXT, hGlobal); 
  CloseClipboard();
  
  printf("Code copie dans le presse papier !\
");
  printf("*********************************************************************\
\
");
  }
	
  return 0;
}

Bien amicalement.

Gp2mv3


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#4 

21-08-2007 07:20:06

Jerry Kan
Membres
Date d'inscription:
Messages: 265
IP: 213.41.232.205
Courriel

tres sympa a toi smile

a mon avis (rapide) le seul souci c'est le collage dans le presse papier qui utilise l'api windows, (on peut coller dans un fichier au pire) le reste doit etre portable,
smile


Hors ligne


#5 

22-08-2007 08:44:30

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.245.128.250
Courriel  Site web

Je me dis la même chose mais je trouve sa très pratique le collage dans le presse papier.

Gp2mv3


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#6 

22-08-2007 10:06:20

Jerry Kan
Membres
Date d'inscription:
Messages: 265
IP: 213.41.232.205
Courriel

bah sous linux il suffit de selectionner pour copier et de faire Mouse 3 pour coller, donc on est pas a un presse papier pret smile


Hors ligne


#7 

22-08-2007 10:30:22

izguit
Administrateurs
Avatar de izguit
Date d'inscription:
Messages: 306
IP: 83.153.12.95
Courriel  Site web

bof, entre un presse papier et les flux c++, je pense que ces derniers sont même plus faciles...


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

Hors ligne


#8 

22-08-2007 16:00:15

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.247.6.239
Courriel  Site web

Pour info, j'ai fais ce petit programme pour insérer des objets dans mon jeu donc si il n'est pas très adapté à vos besoins c'est normal.
Vous pouvez bien sur le modifier à vos besoins.

Gp2mv3


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
165 invités en ligne
membre en ligne: -
RSS Feed