Pages: 1
Bonjour à tous,
Je cherche à utiliser Irrlicht depuis 2 mois et la 1.8 me permet enfin de l'utiliser. La 1.7 n'était pas compatible avec mon ordinateur, enfin il y avait un pb.
J'en ai toujours un du reste
Donc voilà j'ai fais toute l'installation normale. Mais mon pb c'est quand je lance le code de base, l'application crash "Application ne répond plus".
J'utilise ce code :
#include <irrlicht.h> using namespace irr; int main() { // start up the engine IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D8, core::dimension2d<u32>(640,480)); video::IVideoDriver* driver = device->getVideoDriver(); scene::ISceneManager* scenemgr = device->getSceneManager(); device->setWindowCaption(L"Hello World!"); // load and show quake2 .md2 model scene::ISceneNode* node = scenemgr->addAnimatedMeshSceneNode( scenemgr->getMesh("quake2model.md2")); // if everything worked, add a texture and disable lighting if (node) { node->setMaterialTexture(0, driver->getTexture("texture.bmp")); node->setMaterialFlag(video::EMF_LIGHTING, false); } // add a first person shooter style user controlled camera scenemgr->addCameraSceneNodeFPS(); // draw everything while(device->run() && driver) { driver->beginScene(true, true, video::SColor(255,0,0,255)); scenemgr->drawAll(); driver->endScene(); } // delete device device->drop(); return 0; }
Que puis je faiire ?
Merci d'avance de votre aide.
Svp j'ai pas envie d'abandonner déjà Irrlicht qui me parrait vraiment excellent
Hors ligne
Irrlicht n'est pas compiler avec directx de base, utilises donc video::EDT_OPENGL à la place de video::EDT_DIRECT3D8. Et puis bon entre nous dx8 c'est dépassé depuis des lustres. Si tu veux compiler avec directx9 il y a un tuto ici. J'y ai rajouté 2-3 trucs mais si tu as un problème tu n'as qu'à demender.
Hors ligne
Merci de ta réponse mais là je viens de me rendre compte que ce ne viens surement pas de là. Enfin à moitié je pense
Car la console me dit que Irrlicht est en 1.7.3 alors que j'ai dl et utilisé irr 1.8
Irrlicht Engine version 1.7.3
Microsoft Windows 7 Home Premium Edition Service Pack 1 (Build 7601)
Using renderer: OpenGL 4.2.11931
AMD Radeon HD 6900 Series: ATI Technologies Inc.
OpenGL driver version is 1.2 or better.
GLSL version: 4.2
Process returned 255 (0xFF) execution time : 40.145 s
Press any key to continue.
Merci d'avance
Hors ligne
Vérifies que tu as linker la bonne lib et recompile ton projet entièrement. Tu as du te tromper de dossier. Quel est ton IDE?
Hors ligne
J'utilise Code::Block.
Que doit je mettre dans le linker ?
Je ne trouve pas ce qu'il faut linker ...
Hors ligne
Tu créés un projet console.
Ensuite dans Project>Build options :
Nom_du_projet>linker settings -> add : libIrrlicht
Search directories>linker add: chemin d'accès au fichier "Irrlicht 1.8\lib\Win32-gcc\" (qui contient le fichier libIrrlicht.dll.a)
Search directories>Compiler -> add : chemin d'accès au dossier "Irrlicht 1.8\include"
Ensuite tu vas dans Project>Properties>Build target>release : tu décoches "pause when execution ends" et juste au-dessus, tu mets "gui Application" au lieu de "Console Application".
Ca aurait été mieux avec des images mais j'ai la flemme de faire un bon tuto. Au pire, tu devrais en trouver sur le site du zéro il me semble. Mais je pense que tu devrais t'en sortir avec ça.
Hors ligne
Je t'ai fait un package avec Irrlicht 1.8 compilé en "debug" et "release accurate math" avec DirectX9, et un projet exemple. Je suis moi aussi sous code block et Windows7 64bits donc tu ne devrais pas avoir de problème. Juste un conseil, n'utilise pas le projet exemple sans en garder une copie. Si tu veux recompiler irrlicht par la suite, il te faudra le sdk de DX9 comme dit dans le tuto dans la section du même nom.
Voilà le lien : lien
Hors ligne
Ok mais DirectX9 pas compatible avec Linux ? c'est çà ?
OpenGl ne serai pas plus judicieux ?
Désolé d'être embettant xD
Hors ligne
C'est pas grave si tu veux tu peut permettre le choix. Quand tu créé ton device tu lui dit si tu veux opengl ou directx9.
Hors ligne
Super ton projet marche.
J'essai de voir d'où viens mon problème.
Hors ligne
Je ne trouve pas d'où viens mon problème dans mon projet.
Je vais recommencer mais là je vois pas.
Hors ligne
Tant mieux si ça marche. Mais en y pensant ton problème viens peut être du fait qu'il ne trouve pas ton mesh. ça me l'a déjà fait, quant il ne trouve pas une texture ça ne lui pose pas de probleme mais s'il ne trouve pas un mesh, c'est le plantage assuré.
Hors ligne
Ah ok.
Bah je vais voir.
En attendant j'essai les trucs de bases.
Et je le trouve vraiment simple à prendre en main maintenant que j'arrive à l'utiliser
Merci beaucoup de ton aide.
Hors ligne
De rien, n'hésite pas à poser des questions si tu as besoin d'aide.
Hors ligne
Allez je suis un fou je te pose une question
Comment fait t'on pour que lorsqu'on appuie sur Echap notre fenêtre se ferme ?
Hors ligne
Il faut dériver IEventReceiver.
class MyEventReceiver : public IEventReceiver
{
public:
MyEventReceiver() { }
virtual bool OnEvent(const SEvent& event)
{
if (event.EventType == EET_KEY_INPUT_EVENT)
{
if(event.KeyInput.PressedDown)
{
switch(event.KeyInput.Key)
{
case KEY_ESCAPE:
device->closeDevice(); // QUITTE L'APPLICATION
return true; // l'event a été traité
}
}
}
// indique qu'acun event n'a été traité
return false;
} // fin de OnEvent
};
ensuite, après que ton device soit créé tu fais:
MyEventReceiver receiver;
device->setEventReceiver(&receiver);
// Pour des explications le sujet des evenements clavier/souris/joysticks/GUI sont traités dans la section Evénements que je te conseille d'aller voir car il recelle de question sur le sujet.
Dernière modification par johnplayer (17-11-2012 23:14:37)
Hors ligne
Bonjour,
Me revoilà après un ptit temps d'absence pour essayer Opengl. Rien à dire, Irrlicht est mieux.
Mais bon qui veut dire retour Irrlicht veut dire bug x)
J'ai réutilisé ton projet johnplayer. Il a marché une fois. J'ai changé une valeur pour la couleur du ciel et là "Votre Application ne répond pas". Donc le bon vieu Ctrl + Z mais rien n'y fait le bug est toujours là. Aucune erreur de la part du compilo donc je fais encore une fois appel à vous x)
Voici le code :
#include <irrlicht.h> using namespace irr; using namespace gui; using namespace scene; using namespace video; using namespace core; using namespace io; s32 main(s32 argc, c8** argv) { IrrlichtDevice *device = createDevice(EDT_OPENGL, dimension2du(800, 600), 32, false, false, false, 0); device->setWindowCaption(L"Projet de base"); IVideoDriver* driver = device->getVideoDriver(); ISceneManager* smgr = device->getSceneManager(); IGUIEnvironment* guienv = device->getGUIEnvironment(); ICameraSceneNode *cam = smgr->addCameraSceneNodeFPS(); cam->setPosition(vector3df(500,500,500)); cam->setTarget(vector3df(0,0,0)); // boucle s32 lastFPS = -1; while(device->run()) { // driver->beginScene(true, true, SColor(0,255,200,200)); // smgr->drawAll(); // guienv->drawAll(); // driver->endScene(); // s32 fps = driver->getFPS(); if (lastFPS != fps) { stringw str = L"Projet de base ["; str += driver->getName(); str += "] FPS: "; str += fps; str += " | Triangles: "; str += driver->getPrimitiveCountDrawn(); device->setWindowCaption(str.c_str()); lastFPS = fps; } } device->drop(); return 0; }
Dernière modification par Logeur (27-04-2013 17:59:15)
Hors ligne
Il y a de grandes chances pour que la librairie que tu as linkée dans ton projet ne soit pas en concordance avec la dll que tu utilises. Dans le projet que je t'ai donné la lib irrlicht a été recompilée par mes soins donc il faut t'assurer que tu utilises bien la bonne lib.
Edit : Le code du projet est bon, ton problème est survenu lorsqu'il y a eu recompilation (suite à ta modification). Le compilateur a compilé ton projet grâce au *.lib mais lors de l'exécution, il n'a pas trouvé les points d'entrée dans la dll, d'où le plantage. Au pire, recompile Irrlicht.
Dernière modification par johnplayer (27-04-2013 18:21:19)
Hors ligne
j'utilise ton projet donc logiquement pas de soucis de Lib.
Cela peut-il venir du fait que C::B soit en 12.05 ?
Hors ligne
C'est possible, recompile irrlicht pour voir ce que ça donne.
Hors ligne
Bonjour,
Merci, je n'avais pas pensé à la recompile, c'est tout de suite mieux ^^
Hors ligne
Pages: 1