All pastes #507543 Raw Edit

Someone

public cpp v1 · immutable
·published 2007-05-24 16:58 UTC
rendered paste body
class CPlayer { protected:  ICameraSceneNode* cam;  CMesh *plane;  position2d<s32> mousePos, lastMousePos; public:  CPlayer() {   plane = new CMesh("plane.x");   plane->setPosition(0,0,5); // set it to right infront of us   plane->setRotation(0,180,0); // its facing twards us, make it face away   cam = smgr->addCameraSceneNode(); // add our camera   //cam->setParent(plane->mesh());   plane->mesh()->setParent(cam); // make the plane a child of the camera   mousePos = position2d<s32>((s32)0,(s32)0);   lastMousePos = position2d<s32>((s32)0,(s32)0);  }  ICameraSceneNode* getCam() {   return cam;  }  /*Go function to update the camera*/  void go() {   mousePos = device->getCursorControl()->getPosition();   if(mousePos.X > lastMousePos.X) { // moved to the right    // move camera    vector3df p = cam->getRotation();    p.Y += 1;    cam->setRotation(p);    // tilt plane    vector3df z = plane->getRotation();    z.Z += 1;    plane->mesh()->setRotation(z);   }    if(mousePos.X < lastMousePos.X) { // moved to the left    // move camera    vector3df p = cam->getRotation();    p.Y -= 1;    cam->setRotation(p);    // tilt plane    vector3df z = plane->getRotation();    z.Z -= 1;    plane->mesh()->setRotation(z);   }    if(mousePos.Y > lastMousePos.Y) { // moved down    vector3df p = cam->getRotation();    p.X += 1;    cam->setRotation(p);   }    if(mousePos.Y < lastMousePos.Y) { // moved up    vector3df p = cam->getRotation();    p.X -= 1;    cam->setRotation(p);   }   //vector3df Forwards = (cam->getTarget() - cam->getPosition()).normalize(); // wheres infront of us?   vector3df Forwards = cam->getTarget().normalize();   cam->setPosition(cam->getPosition() + Forwards); // move to there   plane->mesh()->setParent(cam); // set the plane to the child of the camera, AGAIN   lastMousePos = mousePos;  }};