]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
walking against Walls Jumpy
authorPeter Schaefer <schaeferpm@gmail.com>
Mon, 22 Jun 2015 12:17:11 +0000 (14:17 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Mon, 22 Jun 2015 12:17:11 +0000 (14:17 +0200)
Weave/Scene/Level.cpp
Weave/Scene/Marvin.cpp
Weave/Scene/Marvin.h
Weave/Scene/Scene.cpp
Weave/Scene/Scene.h
Weave/Scene/SceneObject.cpp
Weave/Scene/SceneObject.h

index 401ad73089a0d1617c8ba21f02b69c7f213397b1..f565eec1ae0294523b0215d21d4a9c8bb94fdaf7 100644 (file)
@@ -57,14 +57,18 @@ void Level::collides(SceneObject* _other, btPersistentManifold* _contactManifold
                        _other->move(-pdist * vec3(0.f, normal[1], 0.f)); 
                }
 
-               if (normal[1] >= .6f && _other->ySpeed < 0)
+               if (normal[1] >= .3f && _other->ySpeed < 0)
                {
                        _other->ySpeed = 0;
                }
                        
 
-               //if (normal[1] <= .6f && pdist<0 && pdist > -1)
-               //      _other->move(-pdist * vec3(normal[0], 0.f, normal[2]));
+               if (normal[1] <= .3f && pdist<0 && pdist > -1)
+               {
+                       _other->move(-pdist * vec3(normal[0], 0.f, normal[2]));
+                       _other->move_delta = 0;
+               }
+                       
 
        }
 
index 75f4e8ccdaf05878c1bfa757ddf49111a74f5e3e..4fe18f7ac23b0d5b645129a4dc6b76b30d45c3cc 100644 (file)
@@ -13,8 +13,7 @@
 #define MOVE_FASTER 2.5f
 
 Marvin::Marvin(Shader* _shader, const mat4& _modelMat) : 
-SceneObject(_shader, _modelMat, vec4(7.0f, 0.7f, 1.0f, 3.0f), "Player.dae", "model_player_2D.png"),
-move_delta(0)
+SceneObject(_shader, _modelMat, vec4(7.0f, 0.7f, 1.0f, 3.0f), "Player.dae", "model_player_2D.png")
 {
        collide_group = COL_MARVIN;
        collide_with = COL_LEVEL | COL_ENEMY;
index 5ae41403fb43cf6669a37e06a857ccba4ac642e8..ddd4ad779715cb4eb0372f39a389d0d3b31da896 100644 (file)
@@ -14,7 +14,6 @@ public:
 
        virtual void update(float) override;
 protected:
-       float move_delta;
 
 };
 
index b88d247c535eeba3b737c3d35b3d1ff2b289d4dc..0f79ff3c68c0a1d7b01dd81dfb803e6577f71783 100644 (file)
@@ -52,7 +52,7 @@ lookat(_lookat)
 
        bt_dynamics_world = new btDiscreteDynamicsWorld(bt_dispatcher, bt_broadphase, bt_solver, bt_collision_configuration);
 
-       //bt_collision_world = new btCollisionWorld(bt_dispatcher, bt_broadphase, bt_collision_configuration);
+       bt_collision_world = new btCollisionWorld(bt_dispatcher, bt_broadphase, bt_collision_configuration);
 
 
        bt_dynamics_world->setGravity(btVector3(0, YFALL_SPEED, 0));
@@ -69,7 +69,7 @@ Scene::~Scene()
        timestamps.empty();
 
        //Bullet
-       //delete bt_collision_world;
+       delete bt_collision_world;
        delete bt_dynamics_world;
        delete bt_solver;
        delete bt_broadphase;
@@ -109,7 +109,7 @@ void Scene::update(float deltaT)
                        (*i)->update(deltaT);
                }
                bt_dynamics_world->stepSimulation(deltaT, 2);
-               //bt_collision_world->performDiscreteCollisionDetection();
+               bt_collision_world->performDiscreteCollisionDetection();
 
                int numManifolds = bt_dynamics_world->getDispatcher()->getNumManifolds();
                //For each contact manifold
@@ -192,7 +192,7 @@ void Scene::addObject(SceneObject* _add)
        SceneObjects.push_back(_add);
        ShaderSet.insert(_add->getShader());
 
-       //bt_collision_world->addCollisionObject(*_add);
+       bt_collision_world->addCollisionObject(*_add, _add->getCollideGroup(), _add->getCollideWith());
        bt_dynamics_world->addCollisionObject(*_add,_add->getCollideGroup(),_add->getCollideWith());
 
        _add->setMainScene(this);
index e6495f9d08dd1118127616f5668ccf7c232d8089..baddcb265c441b414fdb73c6cb716f5a84b2acdc 100644 (file)
@@ -59,6 +59,6 @@ protected:
        btCollisionDispatcher* bt_dispatcher;
        btBroadphaseInterface* bt_broadphase;
        btSequentialImpulseConstraintSolver* bt_solver;
-       //btCollisionWorld* bt_collision_world;
+       btCollisionWorld* bt_collision_world;
        btDiscreteDynamicsWorld* bt_dynamics_world;
 };
index e6a32fa315ce085b9fe0e59d6763240aa26c24a5..2d3645128949a547c5af59b41fafee7b78e65668 100644 (file)
@@ -35,7 +35,8 @@ ignore(false),
 newModel(true),
 collide_group(0),
 collide_with(0),
-bt_collision_object(new btCollisionObject())
+bt_collision_object(new btCollisionObject()),
+move_delta(0)
 {
        //Message::info("Error from befor?");
        //Graphix::getGlError();
@@ -100,7 +101,8 @@ newModel(false),
 collide_group(0),
 collide_with(0),
 bt_collision_object(new btCollisionObject()),
-bt_rigid_body(nullptr)
+bt_rigid_body(nullptr),
+move_delta(0)
 {
        //Message::info("Error from befor?");
        //Graphix::getGlError();
index ddf6476b73c0ccfcd921375334717c479e09f806..e1a13512457a6cfd3f43c6b81ee6e104903f9466 100644 (file)
@@ -74,6 +74,7 @@ public:
        //Falling
        bool yStatic;
        float ySpeed;
+       float move_delta;
        float yFloorDist;
 
        bool ignore;
@@ -81,6 +82,7 @@ public:
 protected:
 
        mat4 modelMat;
+       
 
        Shader* shader;
        Texture* texture;