aboutsummaryrefslogtreecommitdiff
path: root/src/crepe
diff options
context:
space:
mode:
authorJAROWMR <jarorutjes07@gmail.com>2024-11-15 16:10:45 +0100
committerJAROWMR <jarorutjes07@gmail.com>2024-11-15 16:10:45 +0100
commitb019b401c3a1de0ffea7e6776242ae73599651ef (patch)
tree473c90cd71a8ee9943d8d333e11f6d40e68a8287 /src/crepe
parente6bc46a30152a7585dda24fde66622575349d25e (diff)
collision handeling example
Diffstat (limited to 'src/crepe')
-rw-r--r--src/crepe/api/Event.h1
-rw-r--r--src/crepe/api/Rigidbody.h5
-rw-r--r--src/crepe/api/Script.h2
-rw-r--r--src/crepe/system/CollisionSystem.cpp2
-rw-r--r--src/crepe/system/CollisionSystem.h2
-rw-r--r--src/crepe/system/ScriptSystem.cpp6
6 files changed, 11 insertions, 7 deletions
diff --git a/src/crepe/api/Event.h b/src/crepe/api/Event.h
index 3431f29..bd6a541 100644
--- a/src/crepe/api/Event.h
+++ b/src/crepe/api/Event.h
@@ -49,7 +49,6 @@ public:
crepe::CollisionSystem::CollisionInfo info;
CollisionEvent(const crepe::CollisionSystem::CollisionInfo& collisionInfo)
: info(collisionInfo) {}
-
};
class TextSubmitEvent : public Event {
public:
diff --git a/src/crepe/api/Rigidbody.h b/src/crepe/api/Rigidbody.h
index b9edec2..a45623f 100644
--- a/src/crepe/api/Rigidbody.h
+++ b/src/crepe/api/Rigidbody.h
@@ -1,5 +1,6 @@
#pragma once
+#include <cmath>
#include <cstdint>
#include "../Component.h"
@@ -60,13 +61,13 @@ public:
//! linear velocity of object
Vector2 linear_velocity;
//! maximum linear velocity of object
- Vector2 max_linear_velocity;
+ Vector2 max_linear_velocity = {INFINITY ,INFINITY};
//! linear damping of object
Vector2 linear_damping;
//! angular velocity of object
double angular_velocity = 0.0;
//! max angular velocity of object
- double max_angular_velocity = 0.0;
+ double max_angular_velocity = INFINITY;
//! angular damping of object
double angular_damping = 0.0;
//! movements constraints of object
diff --git a/src/crepe/api/Script.h b/src/crepe/api/Script.h
index 49e625f..0a10848 100644
--- a/src/crepe/api/Script.h
+++ b/src/crepe/api/Script.h
@@ -28,7 +28,7 @@ protected:
template <typename T>
std::vector<std::reference_wrapper<T>> get_components();
-private:
+public:
friend class crepe::BehaviorScript;
BehaviorScript * parent = nullptr;
};
diff --git a/src/crepe/system/CollisionSystem.cpp b/src/crepe/system/CollisionSystem.cpp
index 56f07cc..b9366df 100644
--- a/src/crepe/system/CollisionSystem.cpp
+++ b/src/crepe/system/CollisionSystem.cpp
@@ -93,7 +93,7 @@ void CollisionSystem::call_collision_handler(const CollidedInfoStor& data1,const
{ *collider2, data2.transform, data2.rigidbody }
};
CollisionEvent data(collision_info);
- EventManager::get_instance().trigger_event<CollisionEvent>(data, 0);
+ EventManager::get_instance().trigger_event<CollisionEvent>(data, first);
}
}
diff --git a/src/crepe/system/CollisionSystem.h b/src/crepe/system/CollisionSystem.h
index c7e8e0b..a31ac48 100644
--- a/src/crepe/system/CollisionSystem.h
+++ b/src/crepe/system/CollisionSystem.h
@@ -27,7 +27,7 @@ public:
void update();
private:
void call_collision_handler(const CollidedInfoStor& data1,const CollidedInfoStor& data2);
- std::vector<std::pair<CollidedInfoStor,CollidedInfoStor>> check_collisions(const std::vector<std::reference_wrapper<BoxCollider>>& boxcolliders, const std::vector<std::reference_wrapper<CircleCollider>>& circlecolliders);
+ std::vector<std::pair<CollidedInfoStor,CollidedInfoStor>> check_collisions(const std::vector<std::reference_wrapper<BoxCollider>>& boxcolliders, const std::vector<std::reference_wrapper<CircleCollider>>& circlecolliders);
bool check_box_box_collision(const BoxCollider& box1, const BoxCollider& box2, const Transform& transform1, const Transform& transform2, const Rigidbody& rigidbody1, const Rigidbody& rigidbody2);
bool check_box_circle_collision(const BoxCollider& box1, const CircleCollider& circle2, const Transform& transform1, const Transform& transform2, const Rigidbody& rigidbody1, const Rigidbody& rigidbody2);
bool check_circle_circle_collision(const CircleCollider& circle1, const CircleCollider& circle2, const Transform& transform1, const Transform& transform2, const Rigidbody& rigidbody1, const Rigidbody& rigidbody2);
diff --git a/src/crepe/system/ScriptSystem.cpp b/src/crepe/system/ScriptSystem.cpp
index f2673e7..e41961e 100644
--- a/src/crepe/system/ScriptSystem.cpp
+++ b/src/crepe/system/ScriptSystem.cpp
@@ -17,7 +17,11 @@ void ScriptSystem::update() {
dbg_trace();
forward_list<Script *> scripts = this->get_scripts();
- for (Script * script : scripts) script->update();
+ for (Script * script : scripts)
+ {
+ script->init();
+ script->update();
+ };
}
forward_list<Script *> ScriptSystem::get_scripts() {