dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Nesaprašanās ar irrlichta EventReciever

 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
Himself
Indago dalībnieks
Indago dalībnieks


Joined: 13 Apr 2004
Posts: 87
Location: Rīga

PostPosted: Tue Jan 31, 2006 10:57 pm    Post subject: Nesaprašanās ar irrlichta EventReciever

Buros cauri tutoriālim - vienīgajam, ko spēju atrast, kas rādītu, kā taustiņu stāvokli nolasīt.
Problēma šāda - minimāli pamainot funckionalitāti attēlojamam modelim, nestrādā EventReceiver. Vienīgās izmaiņas defaultajā tutoriālī Nr4 ir neimspeisu pievienošana un 3 koda rindiņu pievienošana aiz #ifdef.

Code:

#include <stdio.h>
#include <wchar.h>
#include <irrlicht.h>
#include <windows.h>
using namespace irr;
#pragma comment(lib, "Irrlicht.lib")
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

#define nestraadaa

scene::ISceneNode* node = 0;
IrrlichtDevice* device = 0;

class MyEventReceiver : public IEventReceiver
{
public:
virtual bool OnEvent(SEvent event)
{
if (node != 0 && event.EventType == irr::EET_KEY_INPUT_EVENT &&
!event.KeyInput.PressedDown)
{
switch(event.KeyInput.Key)
{
case KEY_ESCAPE:
    exit(0);
    break;
case KEY_KEY_W:
case KEY_KEY_S:
{
core::vector3df v = node->getPosition();
v.Y += event.KeyInput.Key == KEY_KEY_W ? 2.0f : -2.0f;
node->setPosition(v);
}
return true;
}
}
return false;
}
};

int main()
{
   MyEventReceiver receiver;
  device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(640, 480),
       16, false, false, false, &receiver);
   video::IVideoDriver* driver = device->getVideoDriver();
   scene::ISceneManager* smgr = device->getSceneManager();
   
#ifdef nestraadaa
   
    IAnimatedMesh* roka = smgr->getMesh( "D:/Program Files/ani/roka.3ds" );
   IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( roka );
   roka->drop();
#endif

#ifndef nestraadaa
   node = smgr->addTestSceneNode();
   node->setPosition(core::vector3df(0,0,30));
   node->setMaterialTexture(0, driver->getTexture("../../media/wall.bmp"));
   
   scene::ISceneNode* n = smgr->addTestSceneNode();
   n->setMaterialTexture(0, driver->getTexture("../../media/t351sml.jpg"));
   scene::ISceneNodeAnimator* anim =
   smgr->createFlyCircleAnimator(core::vector3df(0,0,30), 20.0f);
   n->addAnimator(anim);
   anim->drop();
   scene::IAnimatedMeshSceneNode* anms = smgr->addAnimatedMeshSceneNode(
   smgr->getMesh("../../media/sydney.md2"));

if (n)
{
   anim = smgr->createFlyStraightAnimator(core::vector3df(100,0,60),
   core::vector3df(-100,0,60), 10000, true);
   anms->addAnimator(anim);
   anim->drop();
   anms->setMaterialFlag(video::EMF_LIGHTING, false);
   anms->setFrameLoop(320, 360);
   anms->setAnimationSpeed(30);
   anms->setRotation(core::vector3df(0,180.0f,0));
   anms->setMaterialTexture(0, driver->getTexture("../../media/sydney.BMP"));

#endif
   smgr->addCameraSceneNodeFPS(0, 100.0f, 100.0f);
   device->getCursorControl()->setVisible(false);   
   int lastFPS = -1;
   
while(device->run())
{
     driver->beginScene(true, true, video::SColor(255,90,90,156));
     smgr->drawAll();
     driver->endScene();
     int fps = driver->getFPS();
     if (lastFPS != fps)
     {
        wchar_t tmp[1024];
        swprintf(tmp, 1024, L"Movement Example - Irrlicht Engine (%s)(fps:%d)",
        driver->getName(), fps);
        device->setWindowCaption(tmp);
        lastFPS = fps;
     }
}

device->drop();
return 0;
}


Kompilējot ar #define nestraada eventu nolasīšana nestrādā, bez - strādā. Vai kādam ir kādas idejas, ko daru nepareizi ? (iespējas nokompilēt jūsugalā, laikam, niecīgas Wink )
_________________
Paldies
Back to top
View user's profile Send e-mail
Himself
Indago dalībnieks
Indago dalībnieks


Joined: 13 Apr 2004
Posts: 87
Location: Rīga

PostPosted: Fri Feb 03, 2006 10:08 pm    Post subject:

Ak jā - nav vairs aktuāli - ar Voodoo Debugging metodi atrisināju savu sāpi.
Wink
_________________
Paldies
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group