26-11-2012 21:21:46
- Logeur
- Membres

- Date d'inscription:
- Messages: 61
- IP: 5.48.75.208
- Courriel
Bonsoir à tous,
Je rencontre un certain problème.
Après avoir fait tout les tests avec une heightmap tout marche très bien. Mais dès que je passe avec ma carte là je tombe sur ce code d'erreur :
E:\\IRR\\Irrlicht 1.8\\Projet de base\\main.cpp|52|error: 'class irr::scene::IMeshSceneNode' has no member named 'addCameraSceneNodeFPS'|
Je met le code au cas ou ![]()
#include <irrlicht.h>
#include <iostream>
using namespace std;
using namespace irr;
int main()
{
IrrlichtDevice *device = createDevice(video::EDT_OPENGL, core::dimension2d<u32>(1000,800), 32);
video::IVideoDriver *driver = device -> getVideoDriver();
scene::ISceneManager *sceneManager = device -> getSceneManager();
device->setWindowCaption(L"Fast Jump [INDEV]");
device->getCursorControl()->setVisible(false);
scene::IAnimatedMesh *map = sceneManager -> getMesh("mapFJ.obj");
scene::IMeshSceneNode *scene = sceneManager -> addMeshSceneNode(map -> getMesh(0));
scene -> setMaterialFlag(video::EMF_LIGHTING,false);
scene -> setMaterialTexture(0, driver -> getTexture("terrain-texture.jpg"));
sceneManager -> getMeshManipulator() -> makePlanarTextureMapping(map -> getMesh(0), 0.004f);
scene::ITriangleSelector *selector = 0;
if (scene)
{
selector = sceneManager->createOctTreeTriangleSelector(map->getMesh(0), scene);
scene->setTriangleSelector(selector);
selector->drop();
}
SKeyMap keyMap[5];
keyMap[0].Action = irr::EKA_MOVE_FORWARD;
keyMap[0].KeyCode = irr::KEY_KEY_Z;
keyMap[1].Action = irr::EKA_MOVE_BACKWARD;
keyMap[1].KeyCode = irr::KEY_KEY_S;
keyMap[2].Action = irr::EKA_STRAFE_LEFT;
keyMap[2].KeyCode = irr::KEY_KEY_Q;
keyMap[3].Action = irr::EKA_STRAFE_RIGHT;
keyMap[3].KeyCode = irr::KEY_KEY_D;
keyMap[4].Action = EKA_JUMP_UP;
keyMap[4].KeyCode = KEY_SPACE;
scene::ICameraSceneNode* camera = scene-> addCameraSceneNodeFPS(0,100.0f,2.5f, -1, keyMap, 5, true, 0.5f);
camera->setPosition(core::vector3df(2700*2,555*2,2600*2));
camera->setTarget(core::vector3df(2397*2,343*2,2700*2));
camera->setFarValue(42000.0f);
scene::ISceneNodeAnimator *anim = sceneManager->createCollisionResponseAnimator(selector, camera, core::vector3df(60,100,60), core::vector3df(0,-1,0), core::vector3df(0,50,0));
camera->addAnimator(anim);
anim->drop();
while(device -> run())
{
driver -> beginScene(true, true, video::SColor(255,90,146,177));
sceneManager -> drawAll();
driver->endScene();
}
device -> drop();
return 0;
}Merci de votre aide
Hors ligne
27-11-2012 08:45:41
- johnplayer
- Membres

- Date d'inscription:
- Messages: 431
- IP: 83.192.80.19
- Courriel
Il ne peut pas etre plus explicite tu mets à la ligne 52:
scene-> addCameraSceneNodeFPS(0,100.0f,2.5f, -1, keyMap, 5, true, 0.5f);
Or scene est déclaré tel qui suit:
scene::IMeshSceneNode *scene = sceneManager -> addMeshSceneNode(map -> getMesh(0));
Tu dois faire:
sceneManager->addCameraSceneNodeFPS(0,100.0f,2.5f, -1, keyMap, 5, true, 0.5f);
car addcameraSceneNodeFPS est une fonction de IScenemanager.
Sinon ça fait vraiment bizarre tes espaces autour des "->". ça rend le code moins lisible je trouve car "->" est un accesseur pas un opérateur donc pas d'espaces autour. Vu que tu as code::Block, il te suffit de passer le curseur au-dessus d'un terme pour en connaitre sa déclaration.
core i7 4970K @ 4GHz - 32GB ddr3 19200(2400MHz) - ssd samsung 840 evo 250GB - GTX1080Ti (4K) - Cooler master storm stryker blanc.
"L'alcool, c'est comme Activia, c'est actif à l'intérieur et ça se voit à l'extérieur."
Hors ligne
27-11-2012 16:17:15
- Logeur
- Membres

- Date d'inscription:
- Messages: 61
- IP: 5.48.75.208
- Courriel
Merci ![]()
Voilà ce qui arrive quand on dev après une dure journée de travail xD
Hors ligne



