_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;
+ }
+
}
#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;
virtual void update(float) override;
protected:
- float move_delta;
};
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));
timestamps.empty();
//Bullet
- //delete bt_collision_world;
+ delete bt_collision_world;
delete bt_dynamics_world;
delete bt_solver;
delete bt_broadphase;
(*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
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);
btCollisionDispatcher* bt_dispatcher;
btBroadphaseInterface* bt_broadphase;
btSequentialImpulseConstraintSolver* bt_solver;
- //btCollisionWorld* bt_collision_world;
+ btCollisionWorld* bt_collision_world;
btDiscreteDynamicsWorld* bt_dynamics_world;
};
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();
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();
//Falling
bool yStatic;
float ySpeed;
+ float move_delta;
float yFloorDist;
bool ignore;
protected:
mat4 modelMat;
+
Shader* shader;
Texture* texture;