Hey Leute und Hallo Forum,
ich hab mich nach längerer C++ Abstinenz mal drangesetzt und wollte was mit der Irrlicht engine machen, da ich gehört habe, sie sei besonders einfach für 3d - neueinsteiger ;D
Jetzt liegt bei mir aber n riesen stein im weg, und zwar bekomme ich bei jedem IMesh - Objekt bei setMaterialFlag ne Exception.
Also habe ich mich mal ans debuggen gesetzt um auszuschließen dass es am DAU liegt
Bin schließlich auf diesen codeabschnitt in ISceneNode.h gekommen:
Code:
virtual u32 getMaterialCount() const
{
return 0;
}
//! Sets all material flags at once to a new value.
/** Useful, for example, if you want the whole mesh to be
affected by light.
\param flag Which flag of all materials to be set.
\param newvalue New value of that flag. */
void setMaterialFlag(video::E_MATERIAL_FLAG flag, bool newvalue)
{
for (u32 i=0; i<getMaterialCount(); ++i)
getMaterial(i).setFlag(flag, newvalue);
}
jetzt frag ich mich, ob das Absicht ist, dass in getmaterialCount() nur return 0 steht...
Hoffe auf schnelle Lösung
Gruß
gabs
EDIT:
wär vielleicht besser ich poste noch mein code^^
Code:
#include <irrlicht.h>
using namespace irr;
using namespace core;
int main()
{
IrrlichtDevice *device = createDevice(video::EDT_OPENGL,dimension2d<u32>(800,600),32);
if(!device)
{
return -1;
}
scene::ISceneManager *smgr = device->getSceneManager();
video::IVideoDriver *driver = device->getVideoDriver();
scene::IMesh *wp_ak47 = smgr->getMesh("cube.3DS");
//wp_ak47->setMaterialFlag(video::EMF_LIGHTING, false);
smgr->addMeshSceneNode(wp_ak47);
smgr->addCameraSceneNodeFPS();
device->getCursorControl()->setVisible(false);
while(device->run())
{
driver->beginScene();
smgr->drawAll();
driver->endScene();
}
device->drop();
return 0;
}