#0 

13-08-2007 14:58:08

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
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

Dernière modification par gp2mv3 (20-08-2007 14:14:14)


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

Hors ligne


#1 

14-08-2007 13:05:32

Jerry Kan
Habitué
Date d'inscription: 21-11-2006
Messages: 265

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

Hors ligne


#2 

20-08-2007 14:13:56

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
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

Code:

#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\n");
  
  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("\nVeuillez 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("\nVoici le code a recopier :\n");
  
  sprintf(sortie0, "// %s\n",nom);
  sprintf(sortie1, "IAnimatedMesh* %s = smgr->getMesh(\"%s\");\n",nom, chemin);
  sprintf(sortie2, "IAnimatedMeshSceneNode* n%s = smgr->addAnimatedMeshSceneNode(%s);\n", nom, nom);
  sprintf(sortie3, "n%s->setPosition(core::vector3df(%s,%s,%s));\n", nom, X, Z, Y);   
  sprintf(sortie4, "n%s->setMaterialTexture( 0, driver->getTexture(\"%s\"));\n", nom, texture); 
  sprintf(sortie5, "n%s->setMaterialFlag(EMF_LIGHTING, true);\n", nom);
  sprintf(sortie6, "n%s->setScale(core::vector3df(%s,%s,%s));\n", nom, scale, scale, scale);
  sprintf(sortie7, "n%s->setRotation(core::vector3df(0,0,0));\n", nom);
  sprintf(sortie8, "scene::ITriangleSelector* %sselect = smgr->createOctTreeTriangleSelector(%s->getMesh(0),n%s, 32);\n", 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\n\n    //Le metaselecteur\n    %s\n\n", sortie0, sortie1, sortie2, sortie3, sortie4, sortie5, sortie6, sortie7, sortie8, sortie9, sortie10);        
  printf("%s\n", 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 !\n");
  printf("*********************************************************************\n\n");
  }
    
  return 0;
}

Bien amicalement.

Gp2mv3


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

Hors ligne


#3 

21-08-2007 09:20:06

Jerry Kan
Habitué
Date d'inscription: 21-11-2006
Messages: 265

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


#4 

22-08-2007 10:44:30

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
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


#5 

22-08-2007 12:06:20

Jerry Kan
Habitué
Date d'inscription: 21-11-2006
Messages: 265

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


#6 

22-08-2007 12:30:22

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
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


#7 

22-08-2007 18:00:15

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
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

Dernière modification par gp2mv3 (22-08-2007 18:00:33)


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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
72 invités en ligne
Aucun membre connecté
RSS Feed