From e0e3de624a9ff3d36cba2384ec6e7c622503ff1a Mon Sep 17 00:00:00 2001 From: SergioGG05 Date: Thu, 6 Oct 2022 22:01:39 -0500 Subject: [PATCH 1/2] Sergio Gomez (Examen) Sergio Gomez (Examen) --- LastTowerDefense/include/Cylinder.h | 17 +++++++++++++ LastTowerDefense/include/Game.h | 2 ++ LastTowerDefense/src/Cylinder.cpp | 35 ++++++++++++++++++++++++++ LastTowerDefense/src/Game.cpp | 4 +++ PlayEngine/Physics/RigidBody.cpp | 15 +++++++++-- PlayEngine/include/Physics/RigidBody.h | 3 ++- 6 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 LastTowerDefense/include/Cylinder.h create mode 100644 LastTowerDefense/src/Cylinder.cpp diff --git a/LastTowerDefense/include/Cylinder.h b/LastTowerDefense/include/Cylinder.h new file mode 100644 index 0000000..cd21711 --- /dev/null +++ b/LastTowerDefense/include/Cylinder.h @@ -0,0 +1,17 @@ +#include "Base/GameObject.h" +#include "Graphic/Model.h" +#include "Physics/RigidBody.h" + +class Cylinder : public GameObject +{ +private: + RigidBody* rigidbody; + Transform transform; + Graphic::Model* model; +public: + Cylinder(); + virtual ~Cylinder(); + void Draw() override; + void Update(unsigned int delta) override; + void OnTriggerEnter(void* ptr) override; +}; \ No newline at end of file diff --git a/LastTowerDefense/include/Game.h b/LastTowerDefense/include/Game.h index 0e937d6..bc936bf 100644 --- a/LastTowerDefense/include/Game.h +++ b/LastTowerDefense/include/Game.h @@ -10,6 +10,7 @@ #include "Player.h" #include "Enemy.h" #include "Cube.h" +#include "Cylinder.h" #include "Sphere.h" #include "Floor.h" #include "Level.h" @@ -41,6 +42,7 @@ class Game : public GameState std::vector enemies; Floor* floor; Cube* cube; + Cylinder* cylinder; Sphere* sphere; DirectionalLight directionalLight; diff --git a/LastTowerDefense/src/Cylinder.cpp b/LastTowerDefense/src/Cylinder.cpp new file mode 100644 index 0000000..c292906 --- /dev/null +++ b/LastTowerDefense/src/Cylinder.cpp @@ -0,0 +1,35 @@ +#include "Cylinder.h" +#include "Base/ResourceManager.h" + +Cylinder::Cylinder() +{ + id = 103; + model = (Graphic::Model*)ResourceManager::GetPtr()->GetElement("cylinder"); + transform.SetTranslation(10.0f, 200.0f, 0.0f); + transform.SetScale(2.0f, 2.0f, 2.0f); + rigidbody = new RigidBody(2.0f, transform.GetTranslation(), 4.0f, 4.0f, 4.0f, this); +} + +Cylinder::~Cylinder() +{ + //TODO +} + +void Cylinder::Draw() +{ + model->SetTransform(transform); + model->Draw(); +} + +void Cylinder::Update(unsigned int delta) +{ + transform.SetTranslation(rigidbody->GetObjectPosition()); + transform.SetRotation(rigidbody->GetObjectRotation()); +} + +void Cylinder::OnTriggerEnter(void* ptr) +{ + auto obj0 = static_cast(ptr); + + std::cout << "hit cylinder"; +} \ No newline at end of file diff --git a/LastTowerDefense/src/Game.cpp b/LastTowerDefense/src/Game.cpp index 8410f51..97ade05 100644 --- a/LastTowerDefense/src/Game.cpp +++ b/LastTowerDefense/src/Game.cpp @@ -31,6 +31,7 @@ void Game::InitResources() resourceManager->Add(ResourceType::Model3d, "pina_pose"); resourceManager->Add(ResourceType::Model3d, "wall"); resourceManager->Add(ResourceType::Model3d, "cube"); + resourceManager->Add(ResourceType::Model3d, "cylinder"); resourceManager->Add(ResourceType::Model3d, "sphere"); resourceManager->Add(ResourceType::Texture, "pina_normal"); @@ -64,6 +65,7 @@ void Game::Init() player = new Player(); floor = new Floor(); cube = new Cube(); + cylinder = new Cylinder(); sphere = new Sphere(); LoadShaders(); @@ -111,6 +113,7 @@ void Game::Draw() DrawEnemies(); floor->Draw(); cube->Draw(); + cylinder->Draw(); sphere->Draw(); } void Game::DrawMap() @@ -143,6 +146,7 @@ void Game::Update(unsigned int delta) } cube->Update(delta); + cylinder->Update(delta); sphere->Update(delta); physics->Update(delta); } diff --git a/PlayEngine/Physics/RigidBody.cpp b/PlayEngine/Physics/RigidBody.cpp index e805fef..f7d3ee0 100644 --- a/PlayEngine/Physics/RigidBody.cpp +++ b/PlayEngine/Physics/RigidBody.cpp @@ -12,7 +12,7 @@ RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const glm::vec3& b rigidBody->setUserPointer(obj); } -RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const float radio, GameObject* obj) +RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const float& radio, GameObject* obj) { btSphereShape* colShape = new btSphereShape(radio);//TODO arreglar tamanio de la caja de colision btTransform startTransform; @@ -21,8 +21,19 @@ RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const float radio, rigidBody = Physics::GetPtr()->createRigidBody(mass, startTransform, colShape); rigidBody->setRollingFriction(0); rigidBody->setUserPointer(this); + rigidBody->setUserPointer(obj); +} +RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const float& upRadio, const float& downRadio, const float& height, GameObject* obj) +{ + btCylinderShapeX* colShape = new btCylinderShapeX(btVector3(upRadio, height, downRadio)); + btTransform startTransform; + startTransform.setIdentity(); + startTransform.setOrigin(btVector3(pos.x, pos.y, pos.z)); + rigidBody = Physics::GetPtr()->createRigidBody(mass, startTransform, colShape); + rigidBody->setRollingFriction(0); + rigidBody->setUserPointer(this); + rigidBody->setUserPointer(obj); } - glm::vec3 RigidBody::GetObjectPosition() { auto pos = rigidBody->getWorldTransform().getOrigin(); diff --git a/PlayEngine/include/Physics/RigidBody.h b/PlayEngine/include/Physics/RigidBody.h index c5f95dd..c32e8b9 100644 --- a/PlayEngine/include/Physics/RigidBody.h +++ b/PlayEngine/include/Physics/RigidBody.h @@ -9,7 +9,8 @@ class PLAYENGINE RigidBody { public: RigidBody(const float &mass,const glm::vec3 &pos, const glm::vec3 &box, GameObject* obj); - RigidBody(const float& mass, const glm::vec3& pos, const float radio, GameObject* obj); + RigidBody(const float& mass, const glm::vec3& pos, const float& radio, GameObject* obj); + RigidBody(const float& mass, const glm::vec3& pos, const float& upRadio, const float& downRadio, const float& height, GameObject* obj); glm::vec3 GetObjectPosition(); glm::vec3 GetObjectRotation(); From 2b8366183332377d537385cb2e8c9fc1668ab14d Mon Sep 17 00:00:00 2001 From: SergioGG05 <90161309+SergioGG05@users.noreply.github.com> Date: Thu, 6 Oct 2022 22:13:32 -0500 Subject: [PATCH 2/2] Revert "Sergio Gomez (Examen)" --- LastTowerDefense/include/Cylinder.h | 17 ------------- LastTowerDefense/include/Game.h | 2 -- LastTowerDefense/src/Cylinder.cpp | 35 -------------------------- LastTowerDefense/src/Game.cpp | 4 --- PlayEngine/Physics/RigidBody.cpp | 15 ++--------- PlayEngine/include/Physics/RigidBody.h | 3 +-- 6 files changed, 3 insertions(+), 73 deletions(-) delete mode 100644 LastTowerDefense/include/Cylinder.h delete mode 100644 LastTowerDefense/src/Cylinder.cpp diff --git a/LastTowerDefense/include/Cylinder.h b/LastTowerDefense/include/Cylinder.h deleted file mode 100644 index cd21711..0000000 --- a/LastTowerDefense/include/Cylinder.h +++ /dev/null @@ -1,17 +0,0 @@ -#include "Base/GameObject.h" -#include "Graphic/Model.h" -#include "Physics/RigidBody.h" - -class Cylinder : public GameObject -{ -private: - RigidBody* rigidbody; - Transform transform; - Graphic::Model* model; -public: - Cylinder(); - virtual ~Cylinder(); - void Draw() override; - void Update(unsigned int delta) override; - void OnTriggerEnter(void* ptr) override; -}; \ No newline at end of file diff --git a/LastTowerDefense/include/Game.h b/LastTowerDefense/include/Game.h index bc936bf..0e937d6 100644 --- a/LastTowerDefense/include/Game.h +++ b/LastTowerDefense/include/Game.h @@ -10,7 +10,6 @@ #include "Player.h" #include "Enemy.h" #include "Cube.h" -#include "Cylinder.h" #include "Sphere.h" #include "Floor.h" #include "Level.h" @@ -42,7 +41,6 @@ class Game : public GameState std::vector enemies; Floor* floor; Cube* cube; - Cylinder* cylinder; Sphere* sphere; DirectionalLight directionalLight; diff --git a/LastTowerDefense/src/Cylinder.cpp b/LastTowerDefense/src/Cylinder.cpp deleted file mode 100644 index c292906..0000000 --- a/LastTowerDefense/src/Cylinder.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "Cylinder.h" -#include "Base/ResourceManager.h" - -Cylinder::Cylinder() -{ - id = 103; - model = (Graphic::Model*)ResourceManager::GetPtr()->GetElement("cylinder"); - transform.SetTranslation(10.0f, 200.0f, 0.0f); - transform.SetScale(2.0f, 2.0f, 2.0f); - rigidbody = new RigidBody(2.0f, transform.GetTranslation(), 4.0f, 4.0f, 4.0f, this); -} - -Cylinder::~Cylinder() -{ - //TODO -} - -void Cylinder::Draw() -{ - model->SetTransform(transform); - model->Draw(); -} - -void Cylinder::Update(unsigned int delta) -{ - transform.SetTranslation(rigidbody->GetObjectPosition()); - transform.SetRotation(rigidbody->GetObjectRotation()); -} - -void Cylinder::OnTriggerEnter(void* ptr) -{ - auto obj0 = static_cast(ptr); - - std::cout << "hit cylinder"; -} \ No newline at end of file diff --git a/LastTowerDefense/src/Game.cpp b/LastTowerDefense/src/Game.cpp index 97ade05..8410f51 100644 --- a/LastTowerDefense/src/Game.cpp +++ b/LastTowerDefense/src/Game.cpp @@ -31,7 +31,6 @@ void Game::InitResources() resourceManager->Add(ResourceType::Model3d, "pina_pose"); resourceManager->Add(ResourceType::Model3d, "wall"); resourceManager->Add(ResourceType::Model3d, "cube"); - resourceManager->Add(ResourceType::Model3d, "cylinder"); resourceManager->Add(ResourceType::Model3d, "sphere"); resourceManager->Add(ResourceType::Texture, "pina_normal"); @@ -65,7 +64,6 @@ void Game::Init() player = new Player(); floor = new Floor(); cube = new Cube(); - cylinder = new Cylinder(); sphere = new Sphere(); LoadShaders(); @@ -113,7 +111,6 @@ void Game::Draw() DrawEnemies(); floor->Draw(); cube->Draw(); - cylinder->Draw(); sphere->Draw(); } void Game::DrawMap() @@ -146,7 +143,6 @@ void Game::Update(unsigned int delta) } cube->Update(delta); - cylinder->Update(delta); sphere->Update(delta); physics->Update(delta); } diff --git a/PlayEngine/Physics/RigidBody.cpp b/PlayEngine/Physics/RigidBody.cpp index f7d3ee0..e805fef 100644 --- a/PlayEngine/Physics/RigidBody.cpp +++ b/PlayEngine/Physics/RigidBody.cpp @@ -12,7 +12,7 @@ RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const glm::vec3& b rigidBody->setUserPointer(obj); } -RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const float& radio, GameObject* obj) +RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const float radio, GameObject* obj) { btSphereShape* colShape = new btSphereShape(radio);//TODO arreglar tamanio de la caja de colision btTransform startTransform; @@ -21,19 +21,8 @@ RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const float& radio rigidBody = Physics::GetPtr()->createRigidBody(mass, startTransform, colShape); rigidBody->setRollingFriction(0); rigidBody->setUserPointer(this); - rigidBody->setUserPointer(obj); -} -RigidBody::RigidBody(const float& mass, const glm::vec3& pos, const float& upRadio, const float& downRadio, const float& height, GameObject* obj) -{ - btCylinderShapeX* colShape = new btCylinderShapeX(btVector3(upRadio, height, downRadio)); - btTransform startTransform; - startTransform.setIdentity(); - startTransform.setOrigin(btVector3(pos.x, pos.y, pos.z)); - rigidBody = Physics::GetPtr()->createRigidBody(mass, startTransform, colShape); - rigidBody->setRollingFriction(0); - rigidBody->setUserPointer(this); - rigidBody->setUserPointer(obj); } + glm::vec3 RigidBody::GetObjectPosition() { auto pos = rigidBody->getWorldTransform().getOrigin(); diff --git a/PlayEngine/include/Physics/RigidBody.h b/PlayEngine/include/Physics/RigidBody.h index c32e8b9..c5f95dd 100644 --- a/PlayEngine/include/Physics/RigidBody.h +++ b/PlayEngine/include/Physics/RigidBody.h @@ -9,8 +9,7 @@ class PLAYENGINE RigidBody { public: RigidBody(const float &mass,const glm::vec3 &pos, const glm::vec3 &box, GameObject* obj); - RigidBody(const float& mass, const glm::vec3& pos, const float& radio, GameObject* obj); - RigidBody(const float& mass, const glm::vec3& pos, const float& upRadio, const float& downRadio, const float& height, GameObject* obj); + RigidBody(const float& mass, const glm::vec3& pos, const float radio, GameObject* obj); glm::vec3 GetObjectPosition(); glm::vec3 GetObjectRotation();