Making Solid Controller work

This commit is contained in:
2023-04-01 22:35:16 -07:00
parent 2ce629dc52
commit 55dc3dc943
5 changed files with 21 additions and 15 deletions

View File

@ -10,5 +10,5 @@ target_sources(${DAWN_TARGET_NAME}
Collider2D.cpp
CharacterController2D.cpp
SolidController2D.cpp
TriggerCollider2D.cpp
TriggerController2D.cpp
)

View File

@ -29,22 +29,21 @@ bool_t SolidController2D::getCollidingResult(
assertNotNull(movingObject);
if(movement.x == 0 && movement.y == 0) return false;
auto localPos = this->transform->getLocalPosition();
auto localPos = movingObject->transform->getWorldPosition();
glm::vec2 myPos(localPos.x, localPos.z);
// Check what THIS is
// Check what the moving object is
switch(movingObject->getColliderType()) {
case COLLIDER2D_TYPE_BOX: {
auto box1 = dynamic_cast<BoxCollider*>(this);
auto box1 = dynamic_cast<BoxCollider*>(movingObject);
assertNotNull(box1);
// Box VS ?
switch(collider->getColliderType()) {
// Box VS (this)?
switch(this->collider->getColliderType()) {
case COLLIDER2D_TYPE_BOX: {
auto box2 = dynamic_cast<BoxCollider*>(collider);
auto box2 = dynamic_cast<BoxCollider*>(this->collider);
assertNotNull(box2);
auto localPos2 = box2->transform->getLocalPosition();
auto localPos2 = box2->transform->getWorldPosition();
glm::vec2 otherPos(localPos2.x, localPos2.z);
return boxCheckCollision(

View File

@ -5,8 +5,11 @@
#pragma once
#include "Collider2D.hpp"
#include "BoxCollider.hpp"
namespace Dawn {
class CharacterController2D;
class TriggerController2D : public SceneItemComponent {
public:
Collider2D *collider = nullptr;
@ -20,6 +23,6 @@ namespace Dawn {
* Returns whether or not the given moving object is colliding with this
* trigger collider.
*/
bool_t getCollidingResult(Collider2D* movingObject)
bool_t getCollidingResult(Collider2D* movingObject);
};
}