]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
FPS capped
authorPeter Schaefer <schaeferpm@gmail.com>
Wed, 24 Jun 2015 15:36:21 +0000 (17:36 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Wed, 24 Jun 2015 15:36:21 +0000 (17:36 +0200)
small modifications for falling

Weave/Fps.cpp
Weave/Fps.h
Weave/Game.cpp
Weave/Scene/SceneObject.cpp

index 40915356d580c44bbd6bb20ef1096729f63c898d..06b76de1ed642bbe940190ee5c47f9791efb3e23 100644 (file)
@@ -3,6 +3,8 @@
 #include "SDL2\SDL.h"
 #include "Average.h"
 
+#define DELTA_CAP 100
+
 /* 
        Übernimmt die FPS berechnungen  
 */
@@ -31,9 +33,18 @@ Uint32 Fps::getAvFPS() const
 
 float Fps::getDelta() const
 {
+       
        return delta / 1000.f;
 }
 
+float Fps::getCappedDelta() const
+{
+       if (delta > DELTA_CAP)
+               return DELTA_CAP / 1000.f;
+       else
+               return delta / 1000.f;
+}
+
 float Fps::getAvDelta() const
 {
        return av_delta / 1000.f;
index fdc805a33a299bc16a989898959e7c824ced9d76..048014589be37556c6c18991c4b37c36856433ab 100644 (file)
@@ -11,6 +11,7 @@ public:
 
        /* FrameZeit in Millisekunden  */
        operator float() const;
+       float getCappedDelta() const;
 
        /* FrameZeit in Millisekunden*/
        float getDelta() const;
index abe933204f7ef5325f219a57b12219da39e8d7a4..f44fe4a0beefb7585327f7890ac49d0f69a97a1e 100644 (file)
@@ -102,8 +102,8 @@ void Game::play()
                Sleep(sleep_time);
 #endif
                Events::processEvents();
-
-               update(fps);
+               //Message::info(std::to_string(fps.getDelta()));
+               update(fps.getCappedDelta());
 
                Graphix::clear();
 
index 453a4109cbae4d60be03a2f81171a14a34999d38..cd2a3cf7750e0550bd867669d36140feb9a8444e 100644 (file)
@@ -153,14 +153,14 @@ void SceneObject::update(float deltaT)
        //Fallen
        if (!yStatic)
        {
-               if (yFloorDist>0 || ySpeed!=0)
+               if (yFloorDist>0)
                {
                        if (ySpeed*deltaT < yFloorDist || ySpeed>0)
                                move(vec3(0.f, ySpeed*deltaT, 0.f));
                        else
                        {
                                move(vec3(0.f, yFloorDist, 0.f));
-                               ySpeed = 0;     //set to FloorSpeed?
+       //                      ySpeed = 0;     //set to FloorSpeed?
                        }
                        ySpeed -= deltaT*YFALL_SPEED;
                }
@@ -171,7 +171,7 @@ void SceneObject::update(float deltaT)
        btTransform tmp;
        tmp.setFromOpenGLMatrix(value_ptr(modelMat));
        bt_collision_object->setWorldTransform(tmp);
-       yFloorDist = INFINITY;
+       yFloorDist = 100;
 }
 
 void SceneObject::draw() const