From 1a5116b944bcbdeeb3474faefbe150e82f8697b1 Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Sat, 14 Dec 2024 13:24:14 +0100 Subject: updated api and game --- src/crepe/api/BoxCollider.cpp | 3 +-- src/crepe/api/BoxCollider.h | 2 +- src/crepe/api/CircleCollider.cpp | 3 +-- src/crepe/api/CircleCollider.h | 2 +- src/crepe/api/Rigidbody.h | 2 +- src/example/game.cpp | 26 ++++++++------------------ 6 files changed, 13 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/crepe/api/BoxCollider.cpp b/src/crepe/api/BoxCollider.cpp index c097a24..302bdd2 100644 --- a/src/crepe/api/BoxCollider.cpp +++ b/src/crepe/api/BoxCollider.cpp @@ -4,7 +4,6 @@ using namespace crepe; -BoxCollider::BoxCollider(game_object_id_t game_object_id, const vec2 & offset, - const vec2 & dimensions) +BoxCollider::BoxCollider(game_object_id_t game_object_id,const vec2 & dimensions,const vec2 & offset) : Collider(game_object_id, offset), dimensions(dimensions) {} diff --git a/src/crepe/api/BoxCollider.h b/src/crepe/api/BoxCollider.h index 1ac4d46..a507e0c 100644 --- a/src/crepe/api/BoxCollider.h +++ b/src/crepe/api/BoxCollider.h @@ -13,7 +13,7 @@ namespace crepe { */ class BoxCollider : public Collider { public: - BoxCollider(game_object_id_t game_object_id, const vec2 & offset, const vec2 & dimensions); + BoxCollider(game_object_id_t game_object_id, const vec2 & dimensions,const vec2 & offset= {0,0}); //! Width and height of the box collider vec2 dimensions; diff --git a/src/crepe/api/CircleCollider.cpp b/src/crepe/api/CircleCollider.cpp index a4271e9..e542275 100644 --- a/src/crepe/api/CircleCollider.cpp +++ b/src/crepe/api/CircleCollider.cpp @@ -2,7 +2,6 @@ using namespace crepe; -CircleCollider::CircleCollider(game_object_id_t game_object_id, const vec2 & offset, - float radius) +CircleCollider::CircleCollider(game_object_id_t game_object_id, float radius, const vec2 & offset) : Collider(game_object_id, offset), radius(radius) {} diff --git a/src/crepe/api/CircleCollider.h b/src/crepe/api/CircleCollider.h index c7bf66e..ea40068 100644 --- a/src/crepe/api/CircleCollider.h +++ b/src/crepe/api/CircleCollider.h @@ -13,7 +13,7 @@ namespace crepe { */ class CircleCollider : public Collider { public: - CircleCollider(game_object_id_t game_object_id, const vec2 & offset, float radius); + CircleCollider(game_object_id_t game_object_id, float radius, const vec2 & offset= {0,0}); //! Radius of the circle collider. float radius; diff --git a/src/crepe/api/Rigidbody.h b/src/crepe/api/Rigidbody.h index b08c8db..6900295 100644 --- a/src/crepe/api/Rigidbody.h +++ b/src/crepe/api/Rigidbody.h @@ -139,7 +139,7 @@ public: * Each element represents a layer ID, and the GameObject will only detect * collisions with other GameObjects that belong to these layers. */ - std::set collision_layers; + std::set collision_layers = {0}; }; public: diff --git a/src/example/game.cpp b/src/example/game.cpp index 8ea50ea..60c9088 100644 --- a/src/example/game.cpp +++ b/src/example/game.cpp @@ -176,19 +176,11 @@ public: .gravity_scale = 0, .body_type = Rigidbody::BodyType::STATIC, .offset = {0, 0}, - .collision_layers = {0}, }); - world.add_component( - vec2{0, 0 - (screen_size_height / 2 + world_collider / 2)}, - vec2{world_collider, world_collider}); - ; // Top - world.add_component(vec2{0, screen_size_height / 2 + world_collider / 2}, - vec2{world_collider, world_collider}); // Bottom - world.add_component( - vec2{0 - (screen_size_width / 2 + world_collider / 2), 0}, - vec2{world_collider, world_collider}); // Left - world.add_component(vec2{screen_size_width / 2 + world_collider / 2, 0}, - vec2{world_collider, world_collider}); // right + world.add_component(vec2{world_collider, world_collider},vec2{0, 0 - (screen_size_height / 2 + world_collider / 2)}); // Top + world.add_component(vec2{world_collider, world_collider},vec2{0, screen_size_height / 2 + world_collider / 2}); // Bottom + world.add_component(vec2{world_collider, world_collider},vec2{0 - (screen_size_width / 2 + world_collider / 2), 0}); // Left + world.add_component(vec2{world_collider, world_collider},vec2{screen_size_width / 2 + world_collider / 2, 0}); // right world.add_component( ivec2{static_cast(screen_size_width), static_cast(screen_size_height)}, vec2{screen_size_width, screen_size_height}, @@ -207,10 +199,9 @@ public: .constraints = {0, 0, 0}, .elastisity_coefficient = 1, .offset = {0, 0}, - .collision_layers = {0}, }); // add box with boxcollider - game_object1.add_component(vec2{0, 0}, vec2{20, 20}); + game_object1.add_component(vec2{20, 20}); game_object1.add_component().set_script(); Asset img1{"asset/texture/square.png"}; @@ -219,7 +210,7 @@ public: }); //add circle with cirlcecollider deactiveated - game_object1.add_component(vec2{0, 0}, 10).active = false; + game_object1.add_component(10).active = false; Asset img2{"asset/texture/circle.png"}; game_object1 .add_component(img2, @@ -239,10 +230,9 @@ public: .constraints = {0, 0, 0}, .elastisity_coefficient = 1, .offset = {0, 0}, - .collision_layers = {0}, }); // add box with boxcollider - game_object2.add_component(vec2{0, 0}, vec2{20, 20}); + game_object2.add_component(vec2{20, 20}); game_object2.add_component().set_script(); game_object2.add_component(img1, Sprite::Data{ @@ -250,7 +240,7 @@ public: }); //add circle with cirlcecollider deactiveated - game_object2.add_component(vec2{0, 0}, 10).active = false; + game_object2.add_component(10).active = false; game_object2 .add_component(img2, -- cgit v1.2.3 From dd89b381c212aa55a4e9d7bc7eea014e992956ef Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Sat, 14 Dec 2024 13:29:52 +0100 Subject: used add force in game.cpp --- src/example/game.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/example/game.cpp b/src/example/game.cpp index 60c9088..d03d78d 100644 --- a/src/example/game.cpp +++ b/src/example/game.cpp @@ -35,7 +35,8 @@ class MyScript1 : public Script { } case Keycode::W: { Rigidbody & tf = this->get_component(); - tf.data.linear_velocity.y -= 1; + // tf.data.linear_velocity.y -= 1; + tf.add_force_linear({0,-1}); break; } case Keycode::S: { @@ -197,7 +198,7 @@ public: .body_type = Rigidbody::BodyType::DYNAMIC, .linear_velocity = {0, 1}, .constraints = {0, 0, 0}, - .elastisity_coefficient = 1, + .elastisity_coefficient = 0, .offset = {0, 0}, }); // add box with boxcollider -- cgit v1.2.3 From 9dafff70726e4a6f4b9d68c4138a9953a3daad8b Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Sat, 14 Dec 2024 18:23:05 +0100 Subject: updated test --- src/test/CollisionTest.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/test/CollisionTest.cpp b/src/test/CollisionTest.cpp index 2ad65fa..b34bede 100644 --- a/src/test/CollisionTest.cpp +++ b/src/test/CollisionTest.cpp @@ -69,10 +69,10 @@ public: .offset = {0, 0}, }); // Create a box with an inner size of 10x10 units - world.add_component(vec2{0, -100}, vec2{100, 100}); // Top - world.add_component(vec2{0, 100}, vec2{100, 100}); // Bottom - world.add_component(vec2{-100, 0}, vec2{100, 100}); // Left - world.add_component(vec2{100, 0}, vec2{100, 100}); // right + world.add_component(vec2{100, 100},vec2{0, -100}); // Top + world.add_component(vec2{100, 100},vec2{0, 100}); // Bottom + world.add_component(vec2{100, 100},vec2{-100, 0}); // Left + world.add_component(vec2{100, 100},vec2{100, 0}); // right game_object1.add_component(Rigidbody::Data{ .mass = 1, @@ -84,7 +84,7 @@ public: .offset = {0, 0}, .collision_layers = {0}, }); - game_object1.add_component(vec2{0, 0}, vec2{10, 10}); + game_object1.add_component(vec2{10, 10},vec2{0, 0}); BehaviorScript & script_object1 = game_object1.add_component().set_script(1); script_object1_ref = static_cast(script_object1.script.get()); @@ -100,7 +100,7 @@ public: .offset = {0, 0}, .collision_layers = {0}, }); - game_object2.add_component(vec2{0, 0}, vec2{10, 10}); + game_object2.add_component(vec2{10, 10},vec2{0, 0}); BehaviorScript & script_object2 = game_object2.add_component().set_script(2); script_object2_ref = static_cast(script_object2.script.get()); -- cgit v1.2.3 From 4cddaf8e8b809a69a8e03e79c4f7902920745a9a Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Sat, 14 Dec 2024 18:23:31 +0100 Subject: make format --- src/crepe/api/BoxCollider.cpp | 3 ++- src/crepe/api/BoxCollider.h | 3 ++- src/crepe/api/CircleCollider.cpp | 3 ++- src/crepe/api/CircleCollider.h | 3 ++- src/example/game.cpp | 18 +++++++++++++----- src/test/CollisionTest.cpp | 12 ++++++------ 6 files changed, 27 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/crepe/api/BoxCollider.cpp b/src/crepe/api/BoxCollider.cpp index 302bdd2..a893d41 100644 --- a/src/crepe/api/BoxCollider.cpp +++ b/src/crepe/api/BoxCollider.cpp @@ -4,6 +4,7 @@ using namespace crepe; -BoxCollider::BoxCollider(game_object_id_t game_object_id,const vec2 & dimensions,const vec2 & offset) +BoxCollider::BoxCollider(game_object_id_t game_object_id, const vec2 & dimensions, + const vec2 & offset) : Collider(game_object_id, offset), dimensions(dimensions) {} diff --git a/src/crepe/api/BoxCollider.h b/src/crepe/api/BoxCollider.h index a507e0c..d643e7f 100644 --- a/src/crepe/api/BoxCollider.h +++ b/src/crepe/api/BoxCollider.h @@ -13,7 +13,8 @@ namespace crepe { */ class BoxCollider : public Collider { public: - BoxCollider(game_object_id_t game_object_id, const vec2 & dimensions,const vec2 & offset= {0,0}); + BoxCollider(game_object_id_t game_object_id, const vec2 & dimensions, + const vec2 & offset = {0, 0}); //! Width and height of the box collider vec2 dimensions; diff --git a/src/crepe/api/CircleCollider.cpp b/src/crepe/api/CircleCollider.cpp index e542275..90ab5e7 100644 --- a/src/crepe/api/CircleCollider.cpp +++ b/src/crepe/api/CircleCollider.cpp @@ -2,6 +2,7 @@ using namespace crepe; -CircleCollider::CircleCollider(game_object_id_t game_object_id, float radius, const vec2 & offset) +CircleCollider::CircleCollider(game_object_id_t game_object_id, float radius, + const vec2 & offset) : Collider(game_object_id, offset), radius(radius) {} diff --git a/src/crepe/api/CircleCollider.h b/src/crepe/api/CircleCollider.h index ea40068..22da836 100644 --- a/src/crepe/api/CircleCollider.h +++ b/src/crepe/api/CircleCollider.h @@ -13,7 +13,8 @@ namespace crepe { */ class CircleCollider : public Collider { public: - CircleCollider(game_object_id_t game_object_id, float radius, const vec2 & offset= {0,0}); + CircleCollider(game_object_id_t game_object_id, float radius, + const vec2 & offset = {0, 0}); //! Radius of the circle collider. float radius; diff --git a/src/example/game.cpp b/src/example/game.cpp index d03d78d..61f8760 100644 --- a/src/example/game.cpp +++ b/src/example/game.cpp @@ -36,7 +36,7 @@ class MyScript1 : public Script { case Keycode::W: { Rigidbody & tf = this->get_component(); // tf.data.linear_velocity.y -= 1; - tf.add_force_linear({0,-1}); + tf.add_force_linear({0, -1}); break; } case Keycode::S: { @@ -178,10 +178,18 @@ public: .body_type = Rigidbody::BodyType::STATIC, .offset = {0, 0}, }); - world.add_component(vec2{world_collider, world_collider},vec2{0, 0 - (screen_size_height / 2 + world_collider / 2)}); // Top - world.add_component(vec2{world_collider, world_collider},vec2{0, screen_size_height / 2 + world_collider / 2}); // Bottom - world.add_component(vec2{world_collider, world_collider},vec2{0 - (screen_size_width / 2 + world_collider / 2), 0}); // Left - world.add_component(vec2{world_collider, world_collider},vec2{screen_size_width / 2 + world_collider / 2, 0}); // right + world.add_component( + vec2{world_collider, world_collider}, + vec2{0, 0 - (screen_size_height / 2 + world_collider / 2)}); // Top + world.add_component( + vec2{world_collider, world_collider}, + vec2{0, screen_size_height / 2 + world_collider / 2}); // Bottom + world.add_component( + vec2{world_collider, world_collider}, + vec2{0 - (screen_size_width / 2 + world_collider / 2), 0}); // Left + world.add_component( + vec2{world_collider, world_collider}, + vec2{screen_size_width / 2 + world_collider / 2, 0}); // right world.add_component( ivec2{static_cast(screen_size_width), static_cast(screen_size_height)}, vec2{screen_size_width, screen_size_height}, diff --git a/src/test/CollisionTest.cpp b/src/test/CollisionTest.cpp index b34bede..ff9e7cc 100644 --- a/src/test/CollisionTest.cpp +++ b/src/test/CollisionTest.cpp @@ -69,10 +69,10 @@ public: .offset = {0, 0}, }); // Create a box with an inner size of 10x10 units - world.add_component(vec2{100, 100},vec2{0, -100}); // Top - world.add_component(vec2{100, 100},vec2{0, 100}); // Bottom - world.add_component(vec2{100, 100},vec2{-100, 0}); // Left - world.add_component(vec2{100, 100},vec2{100, 0}); // right + world.add_component(vec2{100, 100}, vec2{0, -100}); // Top + world.add_component(vec2{100, 100}, vec2{0, 100}); // Bottom + world.add_component(vec2{100, 100}, vec2{-100, 0}); // Left + world.add_component(vec2{100, 100}, vec2{100, 0}); // right game_object1.add_component(Rigidbody::Data{ .mass = 1, @@ -84,7 +84,7 @@ public: .offset = {0, 0}, .collision_layers = {0}, }); - game_object1.add_component(vec2{10, 10},vec2{0, 0}); + game_object1.add_component(vec2{10, 10}, vec2{0, 0}); BehaviorScript & script_object1 = game_object1.add_component().set_script(1); script_object1_ref = static_cast(script_object1.script.get()); @@ -100,7 +100,7 @@ public: .offset = {0, 0}, .collision_layers = {0}, }); - game_object2.add_component(vec2{10, 10},vec2{0, 0}); + game_object2.add_component(vec2{10, 10}, vec2{0, 0}); BehaviorScript & script_object2 = game_object2.add_component().set_script(2); script_object2_ref = static_cast(script_object2.script.get()); -- cgit v1.2.3