rendered paste body#include "SpaceControl.h"SpaceControl::SpaceControl(ISceneNode* n, ISceneManager* mgr){ tn = n; tn->setMaterialFlag(EMF_LIGHTING, false); tmgr = mgr; tcam = mgr->addCameraSceneNode(); en = mgr->addEmptySceneNode(); en->setParent(tn); for(int x=0; x<KEY_KEY_CODES_COUNT; x++) { keys[x] = false; }}SpaceControl::~SpaceControl(){}void SpaceControl::updateMovement(){ if(keys[KEY_KEY_W]) { vector3df forward(sin(tn->getRotation().Y*PI/180.0f), 0, cos(tn->getRotation().Y*PI/180.0f)); tn->setPosition(tn->getPosition() + forward*1.0f ); } if(keys[KEY_KEY_A]) { tn->setRotation(vector3df(0,tn->getRotation().Y-1.0f,0)); } if(keys[KEY_KEY_S]) { vector3df forward(sin(tn->getRotation().Y*PI/180.0f), 0, cos(tn->getRotation().Y*PI/180.0f)); tn->setPosition(tn->getPosition() - forward*1.0f ); } if(keys[KEY_KEY_D]) { tn->setRotation(vector3df(0,tn->getRotation().Y+1.0f,0)); } if(keys[KEY_KEY_Q]) { tn->setPosition(tn->getPosition()+vector3df(0,1,0)); } if(keys[KEY_KEY_E]) { tn->setPosition(tn->getPosition()+vector3df(0,-1,0)); } if(keys[KEY_KEY_H]) { //enter hyperdrive } en->setPosition(vector3df(0,30,-50)); tcam->setPosition(tcam->getPosition()+(en->getAbsolutePosition() - tcam->getPosition()).normalize()); tcam->setTarget(tn->getPosition());}