

im doing Y rotation then if im doing the Z rotation it's like the Z1, i want it like the Z2. Any Help ??

okay, finnalyRadikalizm wrote:what you want is a local transformation
check out this thread http://irrlicht.sourceforge.net/phpBB2/ ... hp?t=42036
Code: Select all
if(rcv.IsKeyDown(KEY_KEY_D))
rotateNode(MyNode,vector3df(0,0.1f,0));
else
rotateNode(MyNode,vector3df(0,0,1));
Code: Select all
if(rcv.IsKeyDown(KEY_KEY_D))
rotateNode(MyNode,vector3df(0,1,0));
else
rotateNode(MyNode,vector3df(0,0,1));
Code: Select all
rotateNode(MyNode,vector3df(0,0,1));
Code: Select all
rotateNode(MyNode, vector3df(0,-0.1f,0))
Code: Select all
#include <irrlicht.h>
#include "eventreceiver.h"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
#endif
/*
==========
rotateNode -- rotate a scene node locally
==========
*/
void rotateNode(irr::scene::ISceneNode *node, irr::core::vector3df rot)
{
irr::core::matrix4 m;
m = node->getAbsoluteTransformation();
irr::core::matrix4 n;
n.setRotationDegrees(rot);
m *=n;
node->setRotation(m.getRotationDegrees());
node->updateAbsolutePosition();
}
int main(){
IrrlichtDevice* device = createDevice(video::EDT_DIRECT3D9,dimension2d<u32>(800,600),32);
MyEventReceiver rcv;
device->setEventReceiver(&rcv);
ISceneManager* Mgr = device->getSceneManager();
IVideoDriver* Video = device->getVideoDriver();
IMeshSceneNode* Wheel= Mgr->addMeshSceneNode(Mgr->getMesh("ban.x"));
ICameraSceneNode* kamera = Mgr->addCameraSceneNodeFPS();//,vector3df(70,20,5),vector3df(0,0,0));
while(device->run()){
rotateNode(Wheel,vector3df(0,0,1));
rotateNode(Wheel,vector3df(0,1,0));
Video->beginScene(true,true,SColor(255,255,255,255));
Mgr->drawAll();
Video->endScene();
}
device->drop();
return 0;
}