diff --git a/level.cc b/level.cc index 394922b..f02597b 100644 --- a/level.cc +++ b/level.cc @@ -61,23 +61,28 @@ void Level::update(float runTimeSinceLastUpdate, float runTime, glm::vec2 mouseD // Ignore first two mouse updates, because they are incorrect // DON'T try to move this functionallity elsewhere static int i = 0; - if (i <2) { + if (i <20) { i++; + mouseDelta.x=mouseDelta.y=0; } int runs = 2; + + if(i>=20) + { + mouseDelta.x = -mouseDelta.x; + } + for(int j = runs; j > 0; j--) { physics.takeUpdateStep(runTimeSinceLastUpdate/runs); - if(i>=2) - { - mouseDelta.x = -mouseDelta.x; - camera.updateRotation(mouseDelta/100.0f/(float)runs); - physics.updateCameraPos(mouseDelta, 50/runs, camera.getDistance()); + + camera.updateRotation(mouseDelta/100.0f/(float)runs); + physics.updateCameraPos(mouseDelta, 50/runs, camera.getDistance()); - camera.setPosition(physics.getCameraPosition()); - camera.setDirection(physics.getCameraToPlayer()); - } + camera.setPosition(physics.getCameraPosition()); + camera.setDirection(physics.getCameraToPlayer()); + if(wPressed){ physics.rollForward(camera.getVector(),strength/runs); } diff --git a/physics.cc b/physics.cc index 94653fe..24f681f 100644 --- a/physics.cc +++ b/physics.cc @@ -416,7 +416,7 @@ void Physics::addSphere(float rad, Entity entity, float mass, float dampningL, f void Physics::addCamera() //Camera Creator automatically called when player is created { - btSphereShape* sphere = new btSphereShape(0.5f); //we use this to make a more interesting camera, that does not interpenetrate with the terrain/objects + btSphereShape* sphere = new btSphereShape(0.2f); //we use this to make a more interesting camera, that does not interpenetrate with the terrain/objects btVector3 inertia(0,0,0); //rotation handled elsewhere (as it always has to look at the player) @@ -481,7 +481,7 @@ void Physics::updateCameraPos(glm::vec2 mouseMovement, float strength, float dis this->cameraDistance = distance; //note: in mouseMovement x and y are flipped in contrast to bullet btVector3 dodo = btVector3(0,1,0).cross(btVector3(currentDirection.x(),0,currentDirection.z())); - currentDirection = currentDirection.rotate(dodo,-mouseMovement.x / 100);//mathhelper 3.14159265359 + currentDirection = currentDirection.rotate(dodo,-mouseMovement.x / 50);//mathhelper 3.14159265359 btVector3 compare = currentDirection; compare.setY(0);