Jeep physics
This commit is contained in:
@@ -33,6 +33,7 @@ struct Wheel : Component
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
int ID;
|
int ID;
|
||||||
|
glm::quat OriginalOrientation;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+167
-84
@@ -41,100 +41,183 @@ void GameWorld::Initialize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < 1; i++)
|
|
||||||
{
|
{
|
||||||
auto car = CreateEntity();
|
auto jeep = CreateEntity();
|
||||||
auto transform = AddComponent<Components::Transform>(car, "Transform");
|
auto transform = AddComponent<Components::Transform>(jeep, "Transform");
|
||||||
transform->Position = glm::vec3(0, (i+1)*5, 0);
|
transform->Position = glm::vec3(0, 2, 0);
|
||||||
transform->Scale = glm::vec3(3, 1, 5);
|
|
||||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
auto physics = AddComponent<Components::Physics>(jeep, "Physics");
|
||||||
auto model = AddComponent<Components::Model>(car, "Model");
|
|
||||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
|
||||||
auto physics = AddComponent<Components::Physics>(car, "Physics");
|
|
||||||
physics->Mass = 1200;
|
physics->Mass = 1200;
|
||||||
auto box = AddComponent<Components::Box>(car, "Box");
|
auto box = AddComponent<Components::Box>(jeep, "Box");
|
||||||
box->Width = 1.5f;
|
box->Width = 1.487f;
|
||||||
box->Height = 0.5f;
|
box->Height = 0.727f;
|
||||||
box->Depth = 2.5f;
|
box->Depth = 2.594f;
|
||||||
auto vehicle = AddComponent<Components::Vehicle>(car, "Vehicle");
|
auto vehicle = AddComponent<Components::Vehicle>(jeep, "Vehicle");
|
||||||
vehicle->TopSpeed = 500.f;
|
vehicle->TopSpeed = 500.f;
|
||||||
vehicle->MaxTorque = 1000.f;
|
vehicle->MaxTorque = 1000.f;
|
||||||
AddComponent<Components::Input>(car, "Input");
|
AddComponent<Components::Input>(jeep, "Input");
|
||||||
|
|
||||||
{
|
{
|
||||||
// Front Right Wheel
|
auto chassis = CreateEntity(jeep);
|
||||||
auto ent = CreateEntity(car);
|
auto transform = AddComponent<Components::Transform>(chassis, "Transform");
|
||||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
transform->Position = glm::vec3(0, -0.6577f, 0);
|
||||||
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
auto model = AddComponent<Components::Model>(chassis, "Model");
|
||||||
transform->Position = glm::vec3(1.1f, -1.5f, -1.3f);
|
model->ModelFile = "Models/JeepV2/Chassi/chassi.OBJ";
|
||||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
|
||||||
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, -1.3f);// HACK: make into component
|
|
||||||
Wheel->AxleID = 0;
|
|
||||||
Wheel->Mass = 10;
|
|
||||||
Wheel->Radius = 0.5f;
|
|
||||||
Wheel->Steering = true;
|
|
||||||
Wheel->SuspensionStrength = 20.f;
|
|
||||||
auto model = AddComponent<Components::Model>(ent, "Model");
|
|
||||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
|
||||||
CommitEntity(ent);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
// Front Left Wheel
|
|
||||||
auto ent = CreateEntity(car);
|
|
||||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
|
||||||
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
|
||||||
transform->Position = glm::vec3(-1.1f, -1.5f, -1.3f);
|
|
||||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
|
||||||
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, -1.3f);
|
|
||||||
Wheel->AxleID = 0;
|
|
||||||
Wheel->Mass = 10;
|
|
||||||
Wheel->Radius = 0.5f;
|
|
||||||
Wheel->Steering = true;
|
|
||||||
Wheel->SuspensionStrength = 20.f;
|
|
||||||
auto model = AddComponent<Components::Model>(ent, "Model");
|
|
||||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
|
||||||
CommitEntity(ent);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
// Back Right Wheel
|
|
||||||
auto ent = CreateEntity(car);
|
|
||||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
|
||||||
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
|
||||||
transform->Position = glm::vec3(1.1f, -1.5f, 1.3f);
|
|
||||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
|
||||||
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, 1.3f);
|
|
||||||
Wheel->AxleID = 1;
|
|
||||||
Wheel->Mass = 10;
|
|
||||||
Wheel->Radius = 0.5f;
|
|
||||||
Wheel->Steering = false;
|
|
||||||
Wheel->ConnectedToHandbrake = true;
|
|
||||||
Wheel->SuspensionStrength = 20.f;
|
|
||||||
auto model = AddComponent<Components::Model>(ent, "Model");
|
|
||||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
|
||||||
CommitEntity(ent);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
// Back Left Wheel
|
|
||||||
auto ent = CreateEntity(car);
|
|
||||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
|
||||||
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
|
||||||
transform->Position = glm::vec3(-1.1f, -1.5f, 1.3f);
|
|
||||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
|
||||||
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, 1.3f);
|
|
||||||
Wheel->AxleID = 1;
|
|
||||||
Wheel->Mass = 10;
|
|
||||||
Wheel->Radius = 0.5f;
|
|
||||||
Wheel->Steering = false;
|
|
||||||
Wheel->ConnectedToHandbrake = true;
|
|
||||||
Wheel->SuspensionStrength = 20.f;
|
|
||||||
auto model = AddComponent<Components::Model>(ent, "Model");
|
|
||||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
|
||||||
CommitEntity(ent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CommitEntity(car);
|
{
|
||||||
|
auto wheel = CreateEntity(jeep);
|
||||||
|
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||||
|
transform->Position = glm::vec3(1.4f, 0.5546f - 0.6577f - 0.2, -0.9242f);
|
||||||
|
transform->Scale = glm::vec3(1.0f);
|
||||||
|
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/WheelFront/wheelFront.obj";
|
||||||
|
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||||
|
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||||
|
Wheel->AxleID = 0;
|
||||||
|
Wheel->Mass = 10;
|
||||||
|
Wheel->Radius = 0.837f;
|
||||||
|
Wheel->Steering = true;
|
||||||
|
Wheel->SuspensionStrength = 50.f;
|
||||||
|
Wheel->Friction = 4.0f;
|
||||||
|
Wheel->ConnectedToHandbrake = true;
|
||||||
|
CommitEntity(wheel);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto wheel = CreateEntity(jeep);
|
||||||
|
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||||
|
transform->Position = glm::vec3(-1.4f, 0.5546f - 0.6577f - 0.2, -0.9242f);
|
||||||
|
transform->Scale = glm::vec3(1.0f);
|
||||||
|
transform->Orientation = glm::angleAxis(glm::pi<float>(), glm::vec3(0, 0, 1));
|
||||||
|
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/WheelFront/wheelFront.obj";
|
||||||
|
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||||
|
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||||
|
Wheel->AxleID = 0;
|
||||||
|
Wheel->Mass = 10;
|
||||||
|
Wheel->Radius = 0.837f;
|
||||||
|
Wheel->Steering = true;
|
||||||
|
Wheel->SuspensionStrength = 50.f;
|
||||||
|
Wheel->Friction = 4.0f;
|
||||||
|
Wheel->ConnectedToHandbrake = true;
|
||||||
|
CommitEntity(wheel);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto wheel = CreateEntity(jeep);
|
||||||
|
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||||
|
transform->Position = glm::vec3(0.2726f, 0.2805f - 0.6577f, 1.9307f);
|
||||||
|
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/WheelBack/wheelBack.obj";
|
||||||
|
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||||
|
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||||
|
Wheel->AxleID = 1;
|
||||||
|
Wheel->Mass = 10;
|
||||||
|
Wheel->Radius = 0.737f;
|
||||||
|
Wheel->Steering = false;
|
||||||
|
Wheel->SuspensionStrength = 50.f;
|
||||||
|
Wheel->Friction = 4.0f;
|
||||||
|
CommitEntity(wheel);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto wheel = CreateEntity(jeep);
|
||||||
|
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||||
|
transform->Position = glm::vec3(-0.2726f, 0.2805f - 0.6577f, 1.9307f);
|
||||||
|
transform->Orientation = glm::angleAxis(glm::pi<float>(), glm::vec3(0, 0, 1));
|
||||||
|
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/WheelBack/wheelBack.obj";
|
||||||
|
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||||
|
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||||
|
Wheel->AxleID = 1;
|
||||||
|
Wheel->Mass = 10;
|
||||||
|
Wheel->Radius = 0.737f;
|
||||||
|
Wheel->Steering = false;
|
||||||
|
Wheel->SuspensionStrength = 50.f;
|
||||||
|
Wheel->Friction = 4.0f;
|
||||||
|
CommitEntity(wheel);
|
||||||
|
}
|
||||||
|
CommitEntity(jeep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
{
|
||||||
|
// Front Right Wheel
|
||||||
|
auto ent = CreateEntity(car);
|
||||||
|
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||||
|
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||||
|
transform->Position = glm::vec3(1.1f, -1.5f, -1.3f);
|
||||||
|
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||||
|
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, -1.3f);// HACK: make into component
|
||||||
|
Wheel->AxleID = 0;
|
||||||
|
Wheel->Mass = 10;
|
||||||
|
Wheel->Radius = 0.5f;
|
||||||
|
Wheel->Steering = true;
|
||||||
|
Wheel->SuspensionStrength = 20.f;
|
||||||
|
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
|
CommitEntity(ent);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Front Left Wheel
|
||||||
|
auto ent = CreateEntity(car);
|
||||||
|
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||||
|
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||||
|
transform->Position = glm::vec3(-1.1f, -1.5f, -1.3f);
|
||||||
|
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||||
|
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, -1.3f);
|
||||||
|
Wheel->AxleID = 0;
|
||||||
|
Wheel->Mass = 10;
|
||||||
|
Wheel->Radius = 0.5f;
|
||||||
|
Wheel->Steering = true;
|
||||||
|
Wheel->SuspensionStrength = 20.f;
|
||||||
|
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
|
CommitEntity(ent);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Back Right Wheel
|
||||||
|
auto ent = CreateEntity(car);
|
||||||
|
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||||
|
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||||
|
transform->Position = glm::vec3(1.1f, -1.5f, 1.3f);
|
||||||
|
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||||
|
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, 1.3f);
|
||||||
|
Wheel->AxleID = 1;
|
||||||
|
Wheel->Mass = 10;
|
||||||
|
Wheel->Radius = 0.5f;
|
||||||
|
Wheel->Steering = false;
|
||||||
|
Wheel->ConnectedToHandbrake = true;
|
||||||
|
Wheel->SuspensionStrength = 20.f;
|
||||||
|
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
|
CommitEntity(ent);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Back Left Wheel
|
||||||
|
auto ent = CreateEntity(car);
|
||||||
|
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||||
|
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||||
|
transform->Position = glm::vec3(-1.1f, -1.5f, 1.3f);
|
||||||
|
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||||
|
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, 1.3f);
|
||||||
|
Wheel->AxleID = 1;
|
||||||
|
Wheel->Mass = 10;
|
||||||
|
Wheel->Radius = 0.5f;
|
||||||
|
Wheel->Steering = false;
|
||||||
|
Wheel->ConnectedToHandbrake = true;
|
||||||
|
Wheel->SuspensionStrength = 20.f;
|
||||||
|
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
|
CommitEntity(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
CommitEntity(car);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for(int i = 0; i < 10; i++)
|
for(int i = 0; i < 10; i++)
|
||||||
|
|||||||
+114
-58
@@ -24,29 +24,88 @@ void GameWorld::Initialize()
|
|||||||
auto ground = CreateEntity();
|
auto ground = CreateEntity();
|
||||||
auto transform = AddComponent<Components::Transform>(ground, "Transform");
|
auto transform = AddComponent<Components::Transform>(ground, "Transform");
|
||||||
transform->Position = glm::vec3(0, -5, 0);
|
transform->Position = glm::vec3(0, -5, 0);
|
||||||
transform->Scale = glm::vec3(1000.0f, 10.0f, 1000.0f);
|
transform->Scale = glm::vec3(400.0f, 10.0f, 400.0f);
|
||||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||||
auto model = AddComponent<Components::Model>(ground, "Model");
|
auto model = AddComponent<Components::Model>(ground, "Model");
|
||||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube.obj";
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube.obj";
|
||||||
auto box = AddComponent<Components::Box>(ground, "Box");
|
auto box = AddComponent<Components::Box>(ground, "Box");
|
||||||
box->Width = 500;
|
box->Width = 200;
|
||||||
box->Height = 5;
|
box->Height = 5;
|
||||||
box->Depth = 500;
|
box->Depth = 200;
|
||||||
|
|
||||||
auto physics = AddComponent<Components::Physics>(ground, "Physics");
|
auto physics = AddComponent<Components::Physics>(ground, "Physics");
|
||||||
physics->Mass = 10;
|
physics->Mass = 10;
|
||||||
<<<<<<< HEAD
|
|
||||||
physics->Static = true;
|
physics->Static = true;
|
||||||
=======
|
|
||||||
CommitEntity(ground);
|
CommitEntity(ground);
|
||||||
>>>>>>> 84d6911... Barebones entity component commit events
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
{
|
||||||
|
auto jeep = CreateEntity();
|
||||||
|
auto transform = AddComponent<Components::Transform>(jeep, "Transform");
|
||||||
|
transform->Position = glm::vec3(0, 1, 0);
|
||||||
|
|
||||||
|
auto model = AddComponent<Components::Model>(jeep, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/Chassi/chassi.OBJ";
|
||||||
|
CommitEntity(jeep);
|
||||||
|
|
||||||
|
{
|
||||||
|
auto wheel = CreateEntity(jeep);
|
||||||
|
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||||
|
transform->Position = glm::vec3(1.4f, 0.5546f, -0.9242f);
|
||||||
|
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/WheelFront/wheelFront.obj";
|
||||||
|
CommitEntity(wheel);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto wheel = CreateEntity(jeep);
|
||||||
|
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||||
|
transform->Position = glm::vec3(-1.4f, 0.5546f, -0.9242f);
|
||||||
|
transform->Orientation = glm::angleAxis(glm::pi<float>(), glm::vec3(0, 0, 1));
|
||||||
|
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/WheelFront/wheelFront.obj";
|
||||||
|
CommitEntity(wheel);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto wheel = CreateEntity(jeep);
|
||||||
|
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||||
|
transform->Position = glm::vec3(0.2726f, 0.2805f, 1.9307f);
|
||||||
|
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/WheelBack/wheelBack.obj";
|
||||||
|
CommitEntity(wheel);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto wheel = CreateEntity(jeep);
|
||||||
|
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||||
|
transform->Position = glm::vec3(-0.2726f, 0.2805f, 1.9307f);
|
||||||
|
transform->Orientation = glm::angleAxis(glm::pi<float>(), glm::vec3(0, 0, 1));
|
||||||
|
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||||
|
model->ModelFile = "Models/JeepV2/WheelBack/wheelBack.obj";
|
||||||
|
CommitEntity(wheel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
auto TankTest = CreateEntity();
|
||||||
|
auto transform = AddComponent<Components::Transform>(TankTest, "Transform");
|
||||||
|
transform->Position = glm::vec3(1.5f, 0.7f, 5.f);
|
||||||
|
|
||||||
|
auto model = AddComponent<Components::Model>(TankTest, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/tank/Chassi.obj";
|
||||||
|
CommitEntity(TankTest);
|
||||||
|
}
|
||||||
|
>>>>>>> 3412fa4... Jeep entity setup.
|
||||||
|
|
||||||
|
for (int i = 0; i < 1; i++)
|
||||||
{
|
{
|
||||||
auto car = CreateEntity();
|
auto car = CreateEntity();
|
||||||
auto transform = AddComponent<Components::Transform>(car, "Transform");
|
auto transform = AddComponent<Components::Transform>(car, "Transform");
|
||||||
transform->Position = glm::vec3(0, 5, 0);
|
transform->Position = glm::vec3(0, (i+1)*5, 0);
|
||||||
transform->Scale = glm::vec3(3, 1, 5);
|
transform->Scale = glm::vec3(3, 1, 5);
|
||||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||||
auto model = AddComponent<Components::Model>(car, "Model");
|
auto model = AddComponent<Components::Model>(car, "Model");
|
||||||
@@ -58,107 +117,103 @@ void GameWorld::Initialize()
|
|||||||
box->Height = 0.5f;
|
box->Height = 0.5f;
|
||||||
box->Depth = 2.5f;
|
box->Depth = 2.5f;
|
||||||
auto vehicle = AddComponent<Components::Vehicle>(car, "Vehicle");
|
auto vehicle = AddComponent<Components::Vehicle>(car, "Vehicle");
|
||||||
|
vehicle->TopSpeed = 500.f;
|
||||||
|
vehicle->MaxTorque = 1000.f;
|
||||||
AddComponent<Components::Input>(car, "Input");
|
AddComponent<Components::Input>(car, "Input");
|
||||||
|
|
||||||
{
|
{
|
||||||
// Front Right Wheel
|
// Front Right Wheel
|
||||||
auto ent = CreateEntity(car);
|
auto ent = CreateEntity(car);
|
||||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||||
transform->Position = glm::vec3(1.1f, -0.5f, -1.3f);
|
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||||
|
transform->Position = glm::vec3(1.1f, -1.5f, -1.3f);
|
||||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||||
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, -1.3f);// HACK: make into component
|
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, -1.3f);// HACK: make into component
|
||||||
Wheel->AxleID = 0;
|
Wheel->AxleID = 0;
|
||||||
Wheel->Mass = 10;
|
Wheel->Mass = 10;
|
||||||
Wheel->Radius = 0.6f;
|
Wheel->Radius = 0.5f;
|
||||||
Wheel->Steering = true;
|
Wheel->Steering = true;
|
||||||
|
Wheel->SuspensionStrength = 20.f;
|
||||||
|
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
|
CommitEntity(ent);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Front Left Wheel
|
// Front Left Wheel
|
||||||
auto ent = CreateEntity(car);
|
auto ent = CreateEntity(car);
|
||||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||||
transform->Position = glm::vec3(-1.1f, -0.5f, -1.3f);
|
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||||
|
transform->Position = glm::vec3(-1.1f, -1.5f, -1.3f);
|
||||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||||
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, -1.3f);
|
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, -1.3f);
|
||||||
Wheel->AxleID = 0;
|
Wheel->AxleID = 0;
|
||||||
Wheel->Mass = 10;
|
Wheel->Mass = 10;
|
||||||
Wheel->Radius = 0.6f;
|
Wheel->Radius = 0.5f;
|
||||||
Wheel->Steering = true;
|
Wheel->Steering = true;
|
||||||
|
Wheel->SuspensionStrength = 20.f;
|
||||||
|
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
|
CommitEntity(ent);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Back Right Wheel
|
// Back Right Wheel
|
||||||
auto ent = CreateEntity(car);
|
auto ent = CreateEntity(car);
|
||||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||||
transform->Position = glm::vec3(1.1f, -0.5f, 1.3f);
|
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||||
|
transform->Position = glm::vec3(1.1f, -1.5f, 1.3f);
|
||||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||||
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, 1.3f);
|
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, 1.3f);
|
||||||
Wheel->AxleID = 1;
|
Wheel->AxleID = 1;
|
||||||
Wheel->Mass = 10;
|
Wheel->Mass = 10;
|
||||||
Wheel->Radius = 0.6f;
|
Wheel->Radius = 0.5f;
|
||||||
Wheel->Steering = false;
|
Wheel->Steering = false;
|
||||||
|
Wheel->ConnectedToHandbrake = true;
|
||||||
|
Wheel->SuspensionStrength = 20.f;
|
||||||
|
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
|
CommitEntity(ent);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Back Left Wheel
|
// Back Left Wheel
|
||||||
auto ent = CreateEntity(car);
|
auto ent = CreateEntity(car);
|
||||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||||
transform->Position = glm::vec3(-1.1f, -0.5f, 1.3f);
|
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||||
|
transform->Position = glm::vec3(-1.1f, -1.5f, 1.3f);
|
||||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||||
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, 1.3f);
|
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, 1.3f);
|
||||||
Wheel->AxleID = 1;
|
Wheel->AxleID = 1;
|
||||||
Wheel->Mass = 10;
|
Wheel->Mass = 10;
|
||||||
Wheel->Radius = 0.6f;
|
Wheel->Radius = 0.5f;
|
||||||
Wheel->Steering = false;
|
Wheel->Steering = false;
|
||||||
|
Wheel->ConnectedToHandbrake = true;
|
||||||
|
Wheel->SuspensionStrength = 20.f;
|
||||||
|
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||||
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
|
CommitEntity(ent);
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
CommitEntity(car);
|
||||||
}
|
}
|
||||||
|
|
||||||
=======
|
|
||||||
auto model = AddComponent<Components::Model>(TankTest, "Model");
|
|
||||||
model->ModelFile = "Models/Placeholders/tank/Chassi.obj";
|
|
||||||
CommitEntity(TankTest);
|
|
||||||
}
|
|
||||||
|
|
||||||
for(int i = 0; i < 83; i++)
|
|
||||||
|
for(int i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
auto light = CreateEntity();
|
auto cube = CreateEntity();
|
||||||
auto transform = AddComponent<Components::Transform>(light, "Transform");
|
auto transform = AddComponent<Components::Transform>(cube, "Transform");
|
||||||
transform->Position = glm::vec3((float)(2*i)*glm::sin((float)i), 3, (float)(2*i)*glm::cos((float)i));
|
transform->Position = glm::vec3(20, 10 + i*2, 0);
|
||||||
|
transform->Scale = glm::vec3(1);
|
||||||
auto pointLight = AddComponent<Components::PointLight>(light, "PointLight");
|
|
||||||
pointLight->Specular = glm::vec3(0.1f, 0.1f, 0.1f);
|
|
||||||
pointLight->Diffuse = glm::vec3(0.05f, 0.36f, 1.f);
|
|
||||||
pointLight->constantAttenuation = 0.03f;
|
|
||||||
pointLight->linearAttenuation = 0.009f;
|
|
||||||
pointLight->quadraticAttenuation = 0.07f;
|
|
||||||
pointLight->spotExponent = 0.0f;
|
|
||||||
|
|
||||||
auto model = AddComponent<Components::Model>(light, "Model");
|
|
||||||
model->ModelFile = "Models/Placeholders/PhysicsTest/PointLight.obj";
|
|
||||||
CommitEntity(light);
|
|
||||||
}
|
|
||||||
>>>>>>> 84d6911... Barebones entity component commit events
|
|
||||||
|
|
||||||
|
|
||||||
for(int i = 0; i < 50; i++)
|
|
||||||
{
|
|
||||||
auto ball = CreateEntity();
|
|
||||||
auto transform = AddComponent<Components::Transform>(ball, "Transform");
|
|
||||||
transform->Position = glm::vec3(243, 10 + i*10, 0);
|
|
||||||
transform->Scale = glm::vec3(10);
|
|
||||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||||
auto model = AddComponent<Components::Model>(ball, "Model");
|
auto model = AddComponent<Components::Model>(cube, "Model");
|
||||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||||
auto physics = AddComponent<Components::Physics>(ball, "Physics");
|
|
||||||
<<<<<<< HEAD
|
auto physics = AddComponent<Components::Physics>(cube, "Physics");
|
||||||
physics->Mass = 100;
|
physics->Mass = 100;
|
||||||
auto box = AddComponent<Components::Box>(ball, "Box");
|
auto box = AddComponent<Components::Box>(cube, "Box");
|
||||||
box->Width = 5.f;
|
box->Width = 0.5f;
|
||||||
box->Height = 5.f;
|
box->Height = 0.5f;
|
||||||
box->Depth = 5.f;
|
box->Depth = 0.5f;
|
||||||
=======
|
CommitEntity(cube);
|
||||||
physics->Mass = 1;
|
|
||||||
CommitEntity(ball);
|
|
||||||
>>>>>>> 84d6911... Barebones entity component commit events
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -168,6 +223,7 @@ void GameWorld::Initialize()
|
|||||||
emitter->Path = "Sounds/korvring.wav";
|
emitter->Path = "Sounds/korvring.wav";
|
||||||
emitter->Loop = true;
|
emitter->Loop = true;
|
||||||
GetSystem<Systems::SoundSystem>("SoundSystem")->PlaySound(emitter);
|
GetSystem<Systems::SoundSystem>("SoundSystem")->PlaySound(emitter);
|
||||||
|
CommitEntity(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ void main()
|
|||||||
//float bias = 0.001 * tan(acos(cosTheta)); // cosTheta is dot( n,l ), clamped between 0 and 1
|
//float bias = 0.001 * tan(acos(cosTheta)); // cosTheta is dot( n,l ), clamped between 0 and 1
|
||||||
//bias = clamp(bias, 0.0, 0.01);
|
//bias = clamp(bias, 0.0, 0.01);
|
||||||
float visibility = 1.0;
|
float visibility = 1.0;
|
||||||
if (Input.ShadowCoord.x >= 0.0 && Input.ShadowCoord.x <= 1.0 && Input.ShadowCoord.y >= 0.0 && Input.ShadowCoord.y <= 1.0)
|
/*if (Input.ShadowCoord.x >= 0.0 && Input.ShadowCoord.x <= 1.0 && Input.ShadowCoord.y >= 0.0 && Input.ShadowCoord.y <= 1.0)
|
||||||
{
|
{
|
||||||
float bias = 0.00005;
|
float bias = 0.00005;
|
||||||
vec4 shadowMapValue = texture(shadowMap, Input.ShadowCoord.xy);
|
vec4 shadowMapValue = texture(shadowMap, Input.ShadowCoord.xy);
|
||||||
@@ -60,7 +60,7 @@ void main()
|
|||||||
{
|
{
|
||||||
visibility = 0.3;
|
visibility = 0.3;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
vec3 totalLighting = La * Ka * visibility;
|
vec3 totalLighting = La * Ka * visibility;
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ void Systems::PhysicsSystem::UpdateEntity(double dt, EntityID entity, EntityID p
|
|||||||
hkQuaternion steeringOrientation = m_Vehicles[car]->m_wheelsInfo[wheelComponent->ID].m_steeringOrientationChassisSpace;
|
hkQuaternion steeringOrientation = m_Vehicles[car]->m_wheelsInfo[wheelComponent->ID].m_steeringOrientationChassisSpace;
|
||||||
hkReal spinAngle = -m_Vehicles[car]->m_wheelsInfo[wheelComponent->ID].m_spinAngle;
|
hkReal spinAngle = -m_Vehicles[car]->m_wheelsInfo[wheelComponent->ID].m_spinAngle;
|
||||||
glm::quat orientation = glm::quat(steeringOrientation(3), steeringOrientation(0), steeringOrientation(1), steeringOrientation(2)) * glm::angleAxis<float>(spinAngle, glm::vec3(1, 0, 0));
|
glm::quat orientation = glm::quat(steeringOrientation(3), steeringOrientation(0), steeringOrientation(1), steeringOrientation(2)) * glm::angleAxis<float>(spinAngle, glm::vec3(1, 0, 0));
|
||||||
transformComponent->Orientation = orientation;
|
transformComponent->Orientation = orientation * wheelComponent->OriginalOrientation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -164,6 +164,7 @@ void Systems::PhysicsSystem::OnEntityCommit( EntityID entity )
|
|||||||
if (wheelComponent)
|
if (wheelComponent)
|
||||||
{
|
{
|
||||||
wheelComponent->ID = m_Wheels.size();
|
wheelComponent->ID = m_Wheels.size();
|
||||||
|
wheelComponent->OriginalOrientation = transformComponent->Orientation;
|
||||||
m_Wheels.push_back(entity);
|
m_Wheels.push_back(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,7 +180,6 @@ void Systems::PhysicsSystem::OnEntityCommit( EntityID entity )
|
|||||||
hkpRigidBodyCinfo rigidBodyInfo;
|
hkpRigidBodyCinfo rigidBodyInfo;
|
||||||
hkMassProperties massProperties;
|
hkMassProperties massProperties;
|
||||||
|
|
||||||
|
|
||||||
if (sphereComponent)
|
if (sphereComponent)
|
||||||
{
|
{
|
||||||
shape = new hkpSphereShape(sphereComponent->Radius);
|
shape = new hkpSphereShape(sphereComponent->Radius);
|
||||||
|
|||||||
Reference in New Issue
Block a user