Collisions

This commit is contained in:
ViktorLjung
2014-06-05 06:42:19 +02:00
parent a001cad9bc
commit 97994f9af7
8 changed files with 40 additions and 12 deletions
+1 -1
Submodule assets updated: 8ab7df0d7f...c44c64df2b
+36 -2
View File
@@ -8,6 +8,14 @@ void GameWorld::Initialize()
ResourceManager->Preload("Model", "Models/Placeholders/PhysicsTest/Plane.obj");
ResourceManager->Preload("Model", "Models/Placeholders/PhysicsTest/ArrowCube.obj");
ResourceManager->Preload("Model", "Models/Tank/TankCollisionShape.obj");
ResourceManager->Preload("Model", "Models/Tank/tankBody.obj");
ResourceManager->Preload("Model", "Models/Tank/tankTop.obj");
ResourceManager->Preload("Model", "Models/Tank/tankBarrel.obj");
ResourceManager->Preload("Model", "Models/Jeep/Chassi/Chassi.OBJ");
ResourceManager->Preload("Model", "Models/Jeep/WheelFront/wheelFront.obj");
ResourceManager->Preload("Model", "Models/Jeep/WheelBack/wheelBack.obj");
//Background Music
{
Events::PlayBGM e;
@@ -23,6 +31,10 @@ void GameWorld::Initialize()
BindGamepadButton(Gamepad::Button::Right, "interface_horizontal", 1.f);
BindKey(GLFW_KEY_W, "interface_vertical", 1.f);
BindKey(GLFW_KEY_S, "interface_vertical", -1.f);
BindKey(GLFW_KEY_W, "jeep_vertical", 1.f);
BindKey(GLFW_KEY_S, "jeep_vertical", -1.f);
BindGamepadAxis(Gamepad::Axis::LeftY, "interface_vertical", 1.f);
BindGamepadButton(Gamepad::Button::Up, "interface_vertical", 1.f);
BindGamepadButton(Gamepad::Button::Down, "interface_vertical", -1.f);
@@ -869,6 +881,18 @@ void GameWorld::CreateTerrain()
auto transform = AddComponent<Components::Transform>(decoration_middle);
auto model = AddComponent<Components::Model>(decoration_middle);
model->ModelFile = "Models/TerrainFiveIstles/Decoration/Middle.obj";
auto physics = AddComponent<Components::Physics>(decoration_middle);
physics->Mass = 1.f;
physics->MotionType = Components::Physics::MotionTypeEnum::Fixed;
{
auto shape = CreateEntity(decoration_middle);
auto transform = AddComponent<Components::Transform>(shape);
auto mesh = AddComponent<Components::MeshShape>(shape);
mesh->ResourceName = "Models/TerrainFiveIstles/Decoration/Middle.obj";
CommitEntity(shape);
}
CommitEntity(decoration_middle);
}
@@ -1184,6 +1208,16 @@ void GameWorld::CreateBase(glm::quat orientation, int teamID)
auto transform = AddComponent<Components::Transform>(decoration_base);
auto model = AddComponent<Components::Model>(decoration_base);
model->ModelFile = "Models/TerrainFiveIstles/Decoration/Base.obj";
auto physics = AddComponent<Components::Physics>(decoration_base);
physics->MotionType = Components::Physics::MotionTypeEnum::Fixed;
physics->Mass = 1.f;
{
auto shape = CreateEntity(decoration_base);
auto transform = AddComponent<Components::Transform>(shape);
auto mesh = AddComponent<Components::MeshShape>(shape);
mesh->ResourceName = "Models/TerrainFiveIstles/Decoration/BaseCollision.obj";
CommitEntity(shape);
}
CommitEntity(decoration_base);
}
@@ -1439,10 +1473,10 @@ EntityID GameWorld::CreateGarage(EntityID parent, glm::vec3 Position, glm::quat
{
auto shape = CreateEntity(elevator);
auto transform = AddComponent<Components::Transform>(shape);
transform->Position = glm::vec3(0, 0, 0);
transform->Position = glm::vec3(0, -2, 0);
auto box = AddComponent<Components::BoxShape>(shape);
box->Width = 4.754f;
box->Height = 0.141f;
box->Height = 2.141f;
box->Depth = 6.86f;
CommitEntity(shape);
}
-3
View File
@@ -25,8 +25,5 @@ bool Systems::DamageSystem::OnDamage( const Events::Damage &event )
e.Entity = event.Entity;
EventBroker->Publish(e);
}
LOG_INFO("Damaged entity %i, Health left: %f", event.Entity, health->Amount);
return true;
}
+1 -1
View File
@@ -12,7 +12,7 @@ bool Systems::GameStateSystem::OnFlagCaptured(const Events::FlagCaptured &event)
m_InGame = false;
Events::GameOver e1;
e.Player = event.Player;
e1.Player = event.Player;
EventBroker->Publish(e1);
Events::PlayBGM e2;
e2.Resource = "Sounds/BGM/WilliamTellOverture.mp3";
-1
View File
@@ -239,7 +239,6 @@ void Systems::ParticleSystem::ScalarInterpolation(double timeProgress, std::vect
bool Systems::ParticleSystem::CreateExplosion(const Events::CreateExplosion &e)
{
LOG_INFO("Spawning an explosion");
auto explosion = m_World->CreateEntity();
auto emitter = m_World->AddComponent<Components::ParticleEmitter>(explosion);
emitter->LifeTime = e.LifeTime;
-1
View File
@@ -787,7 +787,6 @@ void Systems::PhysicsSystem::OnComponentRemoved(EntityID entity, std::string typ
if(m_RigidBodies.find(entity) != m_RigidBodies.end())
{
LOG_INFO("Removed Trigger of entity %i", entity);
m_PhysicsWorld->markForWrite();
m_RigidBodyEntities.erase(m_RigidBodies[entity]);
m_PhysicsWorld->removeEntity(m_RigidBodies[entity]);
-1
View File
@@ -112,7 +112,6 @@ public:
e.Entity1 = entity1;
e.Entity2 = entity2;
m_PhysicsSystem->EventBroker->Publish(e);
LOG_INFO("CollisionEvent!");
}
private:
+1 -1
View File
@@ -509,7 +509,7 @@ EntityID Systems::TankSteeringSystem::CreateTank(int playerID)
m_World->AddComponent<Components::Input>(tank);
m_World->AddComponent<Components::Listener>(tank);
auto health = m_World->AddComponent<Components::Health>(tank);
health->Amount = 1.f;
health->Amount = 200.f;