mhh problem is ich hab schon nen 0device hier der ganze code:
Code:
#include <irrlicht.h>
#include "NejiEngine.h"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
#pragma comment(lib, "Irrlicht.lib")
//#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
IrrlichtDevice *device = 0;
int MenueAuswahl;
int MenueAuswahlV;
Position Pos;
class MyEventReceiver : public IEventReceiver
{
public:
virtual bool OnEvent(SEvent event)
{
if (event.EventType == irr::EET_KEY_INPUT_EVENT && !event.KeyInput.PressedDown)
{
switch(event.KeyInput.Key)
{
case KEY_KEY_W:
case KEY_KEY_S:
{
event.KeyInput.Key == KEY_KEY_S ? MenueAuswahl = MenueAuswahl + 1 : MenueAuswahl = MenueAuswahl - 1;
if(MenueAuswahl == -1)
{
MenueAuswahl = 2;
break;
}
if(MenueAuswahl == 3)
{
MenueAuswahl = 0;
break;
}
break;
}
case KEY_KEY_A:
if(MenueAuswahlV > 0)
{
MenueAuswahlV = MenueAuswahlV - 1;
}
break;
case KEY_KEY_D:
{
if(MenueAuswahl == 1 && MenueAuswahlV == 0)
{
MenueAuswahlV = MenueAuswahlV + 1;
if(MenueAuswahlV == -1)
{
MenueAuswahlV = 2;
break;
}
if(MenueAuswahlV == 3)
{
MenueAuswahlV = 0;
break;
}
}
break;
}
case KEY_ESCAPE:
{
if(MenueAuswahlV > 0)
{
MenueAuswahlV = MenueAuswahlV - 1;
}
else
{
Exit();
}
break;
}
case KEY_RETURN:
{
switch (MenueAuswahl)
{
case 0:
{
if(MenueAuswahlV == 0)//Spielen
{
//InitSpiel<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
if(MenueAuswahlV == 1)//Grafik
{
system("C:\\Einstellungen.exe");
}
break;
}
case 1:
{
if(MenueAuswahlV == 0)//Optionen
{
MenueAuswahlV = 1;
}
if(MenueAuswahlV == 1)//Sound
{
}
break;
}
case 2:
{
if(MenueAuswahlV == 0)//Beenden
{
Exit();
}
if(MenueAuswahlV == 1)//Eingabe
{
}
break;
}
};
}
return true;
}
}
return false;
}
void Exit(void);
};
MyEventReceiver Receiver;
int main()
{
int tmpBreite;
int tmpHohe;
int tmpTreiber;
int tmpBit;
//FILE* tmpDatei = fopen("config.xml","r");
IrrXMLReader* xml = createIrrXMLReader("config.xml");
while (xml && xml->read())
{
switch (xml->getNodeType())
{
case EXN_ELEMENT:
if (!strcmp("Auflosung", xml->getNodeName()))
{
tmpBreite = xml->getAttributeValueAsInt("Breite");
tmpHohe = xml->getAttributeValueAsInt("Hohe");
tmpBit = xml->getAttributeValueAsInt("Bit");
tmpTreiber = xml->getAttributeValueAsInt("Treiber");//1 Direct, 2 OpenGl, 3 Softwarerendering
}
}
}
device = createDevice(EDT_OPENGL, dimension2d<s32>(tmpBreite, tmpHohe), tmpBit, false, false, false, &Receiver);
device->setWindowCaption(L"Menue Test");
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
while(device->run())
{
guienv->clear();
driver->beginScene(true, true, SColor(200,140,101,140));
NHauptmenu(NPos(0,0,0,0),MenueAuswahlV,device,MenueAuswahl);
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
delete xml;
device->drop();
return 0;
}
void MyEventReceiver::Exit(void)
{
device->closeDevice() ;
}