Merge branch 'havok'
This commit is contained in:
@@ -38,10 +38,3 @@ private:
|
|||||||
|
|
||||||
}
|
}
|
||||||
#endif // Components_Wheel_h__
|
#endif // Components_Wheel_h__
|
||||||
|
|
||||||
/*
|
|
||||||
m_currentSuspensionLength
|
|
||||||
m_suspension
|
|
||||||
m_steeringOrientationChassisSpace
|
|
||||||
m_spinAngle
|
|
||||||
*/
|
|
||||||
+23
-20
@@ -10,18 +10,7 @@ void GameWorld::Initialize()
|
|||||||
|
|
||||||
RegisterComponents();
|
RegisterComponents();
|
||||||
|
|
||||||
{
|
|
||||||
auto camera = CreateEntity();
|
|
||||||
auto transform = AddComponent<Components::Transform>(camera, "Transform");
|
|
||||||
transform->Position.z = 20.f;
|
|
||||||
transform->Position.y = 20.f;
|
|
||||||
transform->Orientation = glm::quat(glm::vec3(glm::pi<float>() / 8.f, 0.f, 0.f));
|
|
||||||
auto cameraComp = AddComponent<Components::Camera>(camera, "Camera");
|
|
||||||
cameraComp->FarClip = 2000.f;
|
|
||||||
AddComponent(camera, "Input");
|
|
||||||
auto freeSteering = AddComponent<Components::FreeSteering>(camera, "FreeSteering");
|
|
||||||
CommitEntity(camera);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -57,16 +46,30 @@ void GameWorld::Initialize()
|
|||||||
box->Height = 0.727f;
|
box->Height = 0.727f;
|
||||||
box->Depth = 2.594f;
|
box->Depth = 2.594f;
|
||||||
auto vehicle = AddComponent<Components::Vehicle>(jeep, "Vehicle");
|
auto vehicle = AddComponent<Components::Vehicle>(jeep, "Vehicle");
|
||||||
vehicle->TopSpeed = 500.f;
|
|
||||||
vehicle->MaxTorque = 1000.f;
|
|
||||||
AddComponent<Components::Input>(jeep, "Input");
|
AddComponent<Components::Input>(jeep, "Input");
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
auto camera = CreateEntity();
|
||||||
|
auto transform = AddComponent<Components::Transform>(camera, "Transform");
|
||||||
|
transform->Position.z = 20.f;
|
||||||
|
transform->Position.y = 10.f;
|
||||||
|
transform->Orientation = glm::quat(glm::vec3(-glm::pi<float>() / 8.f, 0.f, 0.f));
|
||||||
|
auto cameraComp = AddComponent<Components::Camera>(camera, "Camera");
|
||||||
|
cameraComp->FarClip = 2000.f;
|
||||||
|
AddComponent(camera, "Input");
|
||||||
|
auto freeSteering = AddComponent<Components::FreeSteering>(camera, "FreeSteering");
|
||||||
|
CommitEntity(camera);
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto chassis = CreateEntity(jeep);
|
auto chassis = CreateEntity(jeep);
|
||||||
auto transform = AddComponent<Components::Transform>(chassis, "Transform");
|
auto transform = AddComponent<Components::Transform>(chassis, "Transform");
|
||||||
transform->Position = glm::vec3(0, -0.6577f, 0);
|
transform->Position = glm::vec3(0, -0.6577f, 0);
|
||||||
auto model = AddComponent<Components::Model>(chassis, "Model");
|
auto model = AddComponent<Components::Model>(chassis, "Model");
|
||||||
model->ModelFile = "Models/JeepV2/Chassi/chassi.OBJ";
|
model->ModelFile = "Models/JeepV2/Chassi/chassi.OBJ";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -79,10 +82,10 @@ void GameWorld::Initialize()
|
|||||||
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||||
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||||
Wheel->AxleID = 0;
|
Wheel->AxleID = 0;
|
||||||
Wheel->Mass = 10;
|
Wheel->Mass = 50;
|
||||||
Wheel->Radius = 0.837f;
|
Wheel->Radius = 0.837f;
|
||||||
Wheel->Steering = true;
|
Wheel->Steering = true;
|
||||||
Wheel->SuspensionStrength = 50.f;
|
Wheel->SuspensionStrength = 40.f;
|
||||||
Wheel->Friction = 4.0f;
|
Wheel->Friction = 4.0f;
|
||||||
Wheel->ConnectedToHandbrake = true;
|
Wheel->ConnectedToHandbrake = true;
|
||||||
CommitEntity(wheel);
|
CommitEntity(wheel);
|
||||||
@@ -99,10 +102,10 @@ void GameWorld::Initialize()
|
|||||||
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||||
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||||
Wheel->AxleID = 0;
|
Wheel->AxleID = 0;
|
||||||
Wheel->Mass = 10;
|
Wheel->Mass = 50;
|
||||||
Wheel->Radius = 0.837f;
|
Wheel->Radius = 0.837f;
|
||||||
Wheel->Steering = true;
|
Wheel->Steering = true;
|
||||||
Wheel->SuspensionStrength = 50.f;
|
Wheel->SuspensionStrength = 40.f;
|
||||||
Wheel->Friction = 4.0f;
|
Wheel->Friction = 4.0f;
|
||||||
Wheel->ConnectedToHandbrake = true;
|
Wheel->ConnectedToHandbrake = true;
|
||||||
CommitEntity(wheel);
|
CommitEntity(wheel);
|
||||||
@@ -243,7 +246,7 @@ void GameWorld::Initialize()
|
|||||||
CommitEntity(cube);
|
CommitEntity(cube);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
/*{
|
||||||
auto entity = CreateEntity();
|
auto entity = CreateEntity();
|
||||||
AddComponent(entity, "Transform");
|
AddComponent(entity, "Transform");
|
||||||
auto emitter = AddComponent<Components::SoundEmitter>(entity, "SoundEmitter");
|
auto emitter = AddComponent<Components::SoundEmitter>(entity, "SoundEmitter");
|
||||||
@@ -251,7 +254,7 @@ void GameWorld::Initialize()
|
|||||||
emitter->Loop = true;
|
emitter->Loop = true;
|
||||||
GetSystem<Systems::SoundSystem>("SoundSystem")->PlaySound(emitter);
|
GetSystem<Systems::SoundSystem>("SoundSystem")->PlaySound(emitter);
|
||||||
CommitEntity(entity);
|
CommitEntity(entity);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameWorld::Update(double dt)
|
void GameWorld::Update(double dt)
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ void Systems::FreeSteeringSystem::UpdateEntity(double dt, EntityID entity, Entit
|
|||||||
{
|
{
|
||||||
auto transform = m_World->GetComponent<Components::Transform>(entity, "Transform");
|
auto transform = m_World->GetComponent<Components::Transform>(entity, "Transform");
|
||||||
|
|
||||||
glm::vec3 Camera_Right = glm::vec3(glm::vec4(1, 0, 0, 0) * transform->Orientation);
|
glm::vec3 Camera_Right = glm::vec3(transform->Orientation * glm::vec4(1, 0, 0, 0));
|
||||||
glm::vec3 Camera_Forward = glm::vec3(glm::vec4(0, 0, 1, 0) * transform->Orientation);
|
glm::vec3 Camera_Forward = glm::vec3(transform->Orientation * glm::vec4(0, 0, -1, 0));
|
||||||
|
|
||||||
float speed = steering->Speed;
|
float speed = steering->Speed;
|
||||||
if (input->KeyState[GLFW_KEY_LEFT_SHIFT])
|
if (input->KeyState[GLFW_KEY_LEFT_SHIFT])
|
||||||
@@ -42,11 +42,11 @@ void Systems::FreeSteeringSystem::UpdateEntity(double dt, EntityID entity, Entit
|
|||||||
}
|
}
|
||||||
if (input->KeyState[GLFW_KEY_W])
|
if (input->KeyState[GLFW_KEY_W])
|
||||||
{
|
{
|
||||||
transform->Position -= Camera_Forward * (float)dt * speed;
|
transform->Position += Camera_Forward * (float)dt * speed;
|
||||||
}
|
}
|
||||||
if (input->KeyState[GLFW_KEY_S])
|
if (input->KeyState[GLFW_KEY_S])
|
||||||
{
|
{
|
||||||
transform->Position += Camera_Forward * (float)dt * speed;
|
transform->Position -= Camera_Forward * (float)dt * speed;
|
||||||
}
|
}
|
||||||
if (input->KeyState[GLFW_KEY_SPACE])
|
if (input->KeyState[GLFW_KEY_SPACE])
|
||||||
{
|
{
|
||||||
@@ -61,9 +61,9 @@ void Systems::FreeSteeringSystem::UpdateEntity(double dt, EntityID entity, Entit
|
|||||||
{
|
{
|
||||||
// TOUCHING THIS CODE MIGHT CAUSE THE UNIVERSE TO IMPLODE, ALSO DRAGONS // spelling tobias :3
|
// TOUCHING THIS CODE MIGHT CAUSE THE UNIVERSE TO IMPLODE, ALSO DRAGONS // spelling tobias :3
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
transform->Orientation = glm::angleAxis<float>(input->dY / 300.f, glm::vec3(1, 0, 0)) * transform->Orientation;
|
transform->Orientation = glm::angleAxis<float>(input->dX / 300.f, glm::vec3(0, -1, 0)) * transform->Orientation;
|
||||||
|
transform->Orientation = transform->Orientation * glm::angleAxis<float>(input->dY / 300.f, glm::vec3(-1, 0, 0));
|
||||||
|
|
||||||
transform->Orientation = transform->Orientation * glm::angleAxis<float>(input->dX / 300.f, glm::vec3(0, 1, 0));
|
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
// TOUCHING THIS CODE MIGHT CAUSE THE UNIVERSE TO IMPLODE, ALSO DRAGONS
|
// TOUCHING THIS CODE MIGHT CAUSE THE UNIVERSE TO IMPLODE, ALSO DRAGONS
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,17 +133,22 @@ void Systems::PhysicsSystem::UpdateEntity(double dt, EntityID entity, EntityID p
|
|||||||
transformComponent->Orientation = orientation * wheelComponent->OriginalOrientation;
|
transformComponent->Orientation = orientation * wheelComponent->OriginalOrientation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if(m_Vehicles.find(entity) != m_Vehicles.end())
|
||||||
{
|
{
|
||||||
if(m_Vehicles.find(entity) != m_Vehicles.end())
|
hkVector4 position = m_RigidBodies[entity]->getPosition();
|
||||||
|
transformComponent->Position = glm::vec3(position(0), position(1), position(2));
|
||||||
|
hkQuaternion orientation = m_RigidBodies[entity]->getRotation();
|
||||||
|
transformComponent->Orientation = glm::quat(orientation(3),orientation(0), orientation(1), orientation(2));
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(m_RigidBodies.find(entity) != m_RigidBodies.end())
|
||||||
|
{
|
||||||
|
if(m_RigidBodies[entity]->isActive())
|
||||||
{
|
{
|
||||||
if(m_RigidBodies[entity]->isActive())
|
hkVector4 position = m_RigidBodies[entity]->getPosition();
|
||||||
{
|
transformComponent->Position = glm::vec3(position(0), position(1), position(2));
|
||||||
hkVector4 position = m_RigidBodies[entity]->getPosition();
|
hkQuaternion orientation = m_RigidBodies[entity]->getRotation();
|
||||||
transformComponent->Position = glm::vec3(position(0), position(1), position(2));
|
transformComponent->Orientation = glm::quat(orientation(3),orientation(0), orientation(1), orientation(2));
|
||||||
hkQuaternion orientation = m_RigidBodies[entity]->getRotation();
|
|
||||||
transformComponent->Orientation = glm::quat(orientation(3),orientation(0), orientation(1), orientation(2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user