Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Player::move()
- {
- f32 dT = Clock::getFrameTime(); //ms
- core::vector3df initPosition = me->getPosition();
- core::vector3df moveBy = core::vector3df(0.0, 0.0, 0.0);
- core::vector3df initRotation = me->getRotation();
- core::vector3df turnBy = core::vector3df(0.0, 0.0, 0.0);
- if (event()->keyDown(KEY_KEY_W) && !event()->keyDown(KEY_KEY_S)) // check both keys so we don't try to move both directions
- {
- // fowards
- // calculate a distance to step
- f32 dist = moveSpeed * dT;
- moveBy += core::vector3df(dist / cos(deg2rad(initRotation.Y)), 0.0, dist / sin(deg2rad(initRotation.Y)));
- }
- if (event()->keyDown(KEY_KEY_S) && !event()->keyDown(KEY_KEY_W)) // check both keys so we don't try to move both directions
- {
- // backwards
- f32 dist = -moveSpeed * dT;
- moveBy += core::vector3df(dist / cos(deg2rad(initRotation.Y)), 0.0, dist / sin(deg2rad(initRotation.Y)));
- }
- if (event()->keyDown(KEY_KEY_A) && !event()->keyDown(KEY_KEY_D)) // check both keys so we don't try to move both directions
- {
- // turn left
- f32 howMuch = turnSpeed * dT;
- turnBy += core::vector3df(0.0, rad2deg(howMuch), 0.0);
- }
- if (event()->keyDown(KEY_KEY_D) && !event()->keyDown(KEY_KEY_A)) // check both keys so we don't try to move both directions
- {
- // turn right
- f32 howMuch = -turnSpeed * dT;
- turnBy += core::vector3df(0.0, rad2deg(howMuch), 0.0);
- }
- me->setPosition(initPosition + moveBy); // me is the cube node
- me->setRotation(initRotation + turnBy); // the camera is assigned it's parent at creation in the Player constructor
- // move the camera with us
- moveCamera();
- }
- void Player::moveCamera()
- {
- if (!camera)
- return;
- if (!me)
- return;
- camera->setPosition(core::vector3df(0.0, 0.0, 0.0));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement