mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-15 00:11:55 +07:00
remove pivot from samples
This commit is contained in:
@@ -13,6 +13,7 @@ namespace e2d
|
|||||||
class named final {
|
class named final {
|
||||||
public:
|
public:
|
||||||
named() = default;
|
named() = default;
|
||||||
|
named(str value) noexcept;
|
||||||
|
|
||||||
named& name(str value) noexcept;
|
named& name(str value) noexcept;
|
||||||
|
|
||||||
@@ -53,6 +54,9 @@ namespace e2d
|
|||||||
|
|
||||||
namespace e2d
|
namespace e2d
|
||||||
{
|
{
|
||||||
|
inline named::named(str value) noexcept
|
||||||
|
: name_(std::move(value)) {}
|
||||||
|
|
||||||
inline named& named::name(str value) noexcept {
|
inline named& named::name(str value) noexcept {
|
||||||
name_ = std::move(value);
|
name_ = std::move(value);
|
||||||
return *this;
|
return *this;
|
||||||
|
|||||||
@@ -1,11 +1,22 @@
|
|||||||
{
|
{
|
||||||
"prefab" : "sprite_prefab.json",
|
|
||||||
"components" : {
|
"components" : {
|
||||||
"named" : {
|
"named" : {
|
||||||
"name" : "ship"
|
"name" : "ship"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"children" : [{
|
||||||
|
"uuid" : "6A3E19C4-840C-40E9-9AB0-5D8DF77F0634",
|
||||||
|
"prefab" : "sprite_prefab.json",
|
||||||
|
"components" : {
|
||||||
|
"named" : {
|
||||||
|
"name" : "sprite"
|
||||||
|
},
|
||||||
|
"actor" : {
|
||||||
|
"translation" : [-33,-56.5]
|
||||||
},
|
},
|
||||||
"sprite_renderer" : {
|
"sprite_renderer" : {
|
||||||
"sprite" : "../sprites/ship_sprite.json"
|
"sprite" : "../sprites/ship_sprite.json"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,38 +58,51 @@
|
|||||||
"actor" : {
|
"actor" : {
|
||||||
"translation" : [0,0],
|
"translation" : [0,0],
|
||||||
"scale" : 20
|
"scale" : 20
|
||||||
},
|
|
||||||
"named" : {
|
|
||||||
"name" : "gnome"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
"prefab" : "../prefabs/ship_prefab.json",
|
|
||||||
"components" : {
|
"components" : {
|
||||||
"sprite_renderer" : {
|
|
||||||
"blending" : "additive"
|
|
||||||
},
|
|
||||||
"actor" : {
|
|
||||||
"translation" : [-50,-50]
|
|
||||||
},
|
|
||||||
"named" : {
|
"named" : {
|
||||||
"name" : "ship(1)"
|
"name" : "ships"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"children" : [{
|
"children" : [{
|
||||||
"prefab" : "../prefabs/ship_prefab.json",
|
"prefab" : "../prefabs/ship_prefab.json",
|
||||||
"components" : {
|
"components" : {
|
||||||
"sprite_renderer" : {
|
"named" : {
|
||||||
"tint" : [255,0,0,255]
|
"name" : "ship(1)"
|
||||||
},
|
},
|
||||||
"actor" : {
|
"actor" : {
|
||||||
"translation" : [100,0]
|
"translation" : [-50,-50]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
"mod_children" : [{
|
||||||
|
"uuid" : "6A3E19C4-840C-40E9-9AB0-5D8DF77F0634",
|
||||||
|
"components" : {
|
||||||
|
"sprite_renderer" : {
|
||||||
|
"tint" : [255,0,0,255]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
}, {
|
||||||
|
"prefab" : "../prefabs/ship_prefab.json",
|
||||||
|
"components" : {
|
||||||
"named" : {
|
"named" : {
|
||||||
"name" : "ship(2)"
|
"name" : "ship(2)"
|
||||||
|
},
|
||||||
|
"actor" : {
|
||||||
|
"translation" : [50,-50]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mod_children" : [{
|
||||||
|
"uuid" : "6A3E19C4-840C-40E9-9AB0-5D8DF77F0634",
|
||||||
|
"components" : {
|
||||||
|
"sprite_renderer" : {
|
||||||
|
"blending" : "additive"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
}]
|
||||||
}, {
|
}, {
|
||||||
"prefab" : "../prefabs/label_bm_prefab.json",
|
"prefab" : "../prefabs/label_bm_prefab.json",
|
||||||
"components" : {
|
"components" : {
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"texture" : "background.png",
|
"texture" : "background.png",
|
||||||
"pivot" : { "x" : 0, "y" : 0 },
|
|
||||||
"texrect" : { "x" : 0, "y" : 0, "w" : 256, "h" : 256 }
|
"texrect" : { "x" : 0, "y" : 0, "w" : 256, "h" : 256 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"texture" : "cube_0.png",
|
"texture" : "cube_0.png",
|
||||||
"pivot" : { "x" : 12, "y" : 12 },
|
|
||||||
"texrect" : { "x" : 0, "y" : 0, "w" : 24, "h" : 24 }
|
"texrect" : { "x" : 0, "y" : 0, "w" : 24, "h" : 24 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"texture" : "cube_1.png",
|
"texture" : "cube_1.png",
|
||||||
"pivot" : { "x" : 12, "y" : 12 },
|
|
||||||
"texrect" : { "x" : 0, "y" : 0, "w" : 24, "h" : 24 }
|
"texrect" : { "x" : 0, "y" : 0, "w" : 24, "h" : 24 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"texture" : "panel.png",
|
"texture" : "panel.png",
|
||||||
"pivot" : { "x" : 0, "y" : 0 },
|
|
||||||
"inner_texrect" : { "x" : 6, "y" : 6, "w" : 88, "h" : 88 },
|
"inner_texrect" : { "x" : 6, "y" : 6, "w" : 88, "h" : 88 },
|
||||||
"outer_texrect" : { "x" : 0, "y" : 0, "w" : 100, "h" : 100 }
|
"outer_texrect" : { "x" : 0, "y" : 0, "w" : 100, "h" : 100 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"texture" : "ships.png",
|
"texture" : "ships.png",
|
||||||
"pivot" : { "x" : 441, "y" : 340.5 },
|
|
||||||
"texrect" : { "x" : 408, "y" : 284, "w" : 66, "h" : 113 }
|
"texrect" : { "x" : 408, "y" : 284, "w" : 66, "h" : 113 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,9 @@
|
|||||||
"texture" : "ships.png",
|
"texture" : "ships.png",
|
||||||
"sprites" : [{
|
"sprites" : [{
|
||||||
"name" : "ship (1).png",
|
"name" : "ship (1).png",
|
||||||
"pivot" : { "x" : 441, "y" : 455 },
|
|
||||||
"texrect" : { "x" : 408, "y" : 399, "w" : 66, "h" : 113 }
|
"texrect" : { "x" : 408, "y" : 399, "w" : 66, "h" : 113 }
|
||||||
},{
|
},{
|
||||||
"name" : "ship (2).png",
|
"name" : "ship (2).png",
|
||||||
"pivot" : { "x" : 441, "y" : 340 },
|
|
||||||
"texrect" : { "x" : 408, "y" : 284, "w" : 66, "h" : 113 }
|
"texrect" : { "x" : 408, "y" : 284, "w" : 66, "h" : 113 }
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ namespace
|
|||||||
|
|
||||||
auto scene_i = the<world>().instantiate();
|
auto scene_i = the<world>().instantiate();
|
||||||
scene_i.component<scene>().assign();
|
scene_i.component<scene>().assign();
|
||||||
|
scene_i.component<named>().assign("scene");
|
||||||
|
|
||||||
{
|
{
|
||||||
prefab prefab;
|
prefab prefab;
|
||||||
@@ -113,14 +114,22 @@ namespace
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
prefab sprite_prefab;
|
||||||
|
sprite_prefab.prototype()
|
||||||
|
.component<named>(named()
|
||||||
|
.name("sprite"))
|
||||||
|
.component<actor>(actor()
|
||||||
|
.node(node::create(math::make_translation_trs2(v2f{-33.f,-56.5f}))))
|
||||||
|
.component<renderer>()
|
||||||
|
.component<sprite_renderer>(sprite_renderer(sprite_res)
|
||||||
|
.materials({{"normal", sprite_mat}}));
|
||||||
|
|
||||||
prefab prefab;
|
prefab prefab;
|
||||||
prefab.prototype()
|
prefab.prototype()
|
||||||
.component<named>(named()
|
.component<named>(named()
|
||||||
.name("ship"))
|
.name("ship"))
|
||||||
.component<node_rotator>()
|
.component<node_rotator>();
|
||||||
.component<renderer>()
|
prefab.set_children({sprite_prefab});
|
||||||
.component<sprite_renderer>(sprite_renderer(sprite_res)
|
|
||||||
.materials({{"normal", sprite_mat}}));
|
|
||||||
|
|
||||||
the<world>().instantiate(
|
the<world>().instantiate(
|
||||||
prefab,
|
prefab,
|
||||||
@@ -129,11 +138,12 @@ namespace
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
prefab prefab_a;
|
prefab sprite_prefab;
|
||||||
prefab_a.prototype()
|
sprite_prefab.prototype()
|
||||||
.component<named>(named()
|
.component<named>(named()
|
||||||
.name("cube"))
|
.name("sprite"))
|
||||||
.component<node_rotator>()
|
.component<actor>(actor()
|
||||||
|
.node(node::create(math::make_translation_trs2(v2f{-12.f,-12.f}))))
|
||||||
.component<renderer>()
|
.component<renderer>()
|
||||||
.component<sprite_renderer>(sprite_renderer()
|
.component<sprite_renderer>(sprite_renderer()
|
||||||
.filtering(false)
|
.filtering(false)
|
||||||
@@ -142,28 +152,35 @@ namespace
|
|||||||
.play("idle")
|
.play("idle")
|
||||||
.looped(true));
|
.looped(true));
|
||||||
|
|
||||||
|
prefab child_prefab;
|
||||||
|
child_prefab.prototype()
|
||||||
|
.component<named>(named()
|
||||||
|
.name("child"))
|
||||||
|
.component<actor>(actor()
|
||||||
|
.node(node::create(make_trs2(
|
||||||
|
v2f{20.f,0.f},
|
||||||
|
0.f,
|
||||||
|
v2f{0.3f,0.3f}))))
|
||||||
|
.component<node_rotator>();
|
||||||
|
child_prefab.set_children({sprite_prefab});
|
||||||
|
|
||||||
|
prefab root_prefab;
|
||||||
|
root_prefab.prototype()
|
||||||
|
.component<named>(named()
|
||||||
|
.name("root"))
|
||||||
|
.component<node_rotator>();
|
||||||
|
root_prefab.set_children({sprite_prefab, child_prefab});
|
||||||
|
|
||||||
for ( std::size_t i = 0; i < 2; ++i )
|
for ( std::size_t i = 0; i < 2; ++i )
|
||||||
for ( std::size_t j = 0; j < 5; ++j ) {
|
for ( std::size_t j = 0; j < 5; ++j ) {
|
||||||
t2f trans{
|
t2f trans{
|
||||||
{-80.f + j * 40.f, -200.f + i * 40.f},
|
{-80.f + j * 40.f, -200.f + i * 40.f},
|
||||||
0.f,
|
0.f,
|
||||||
{2.f,2.f}};
|
{2.f,2.f}};
|
||||||
gobject inst = the<world>().instantiate(
|
the<world>().instantiate(
|
||||||
prefab_a,
|
root_prefab,
|
||||||
scene_i.component<actor>()->node(),
|
scene_i.component<actor>()->node(),
|
||||||
trans);
|
trans);
|
||||||
|
|
||||||
prefab prefab_b = prefab_a;
|
|
||||||
prefab_b.prototype()
|
|
||||||
.component<node_rotator>()
|
|
||||||
.component<actor>(node::create(make_trs2(
|
|
||||||
v2f{20.f,0.f},
|
|
||||||
0.f,
|
|
||||||
v2f{0.3f,0.3f})));
|
|
||||||
|
|
||||||
the<world>().instantiate(
|
|
||||||
prefab_b,
|
|
||||||
inst.component<actor>()->node());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,9 @@
|
|||||||
"texture" : "image.png",
|
"texture" : "image.png",
|
||||||
"sprites" : [{
|
"sprites" : [{
|
||||||
"name" : "sprite",
|
"name" : "sprite",
|
||||||
"pivot" : { "x" : 1, "y" : 2 },
|
|
||||||
"texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
|
"texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
|
||||||
},{
|
},{
|
||||||
"name" : "sprite2",
|
"name" : "sprite2",
|
||||||
"pivot" : { "x" : 1, "y" : 2 },
|
|
||||||
"inner_texrect" : { "x" : 1, "y" : 2, "w" : 3, "h" : 4 },
|
"inner_texrect" : { "x" : 1, "y" : 2, "w" : 3, "h" : 4 },
|
||||||
"outer_texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
|
"outer_texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
|
||||||
}]
|
}]
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
"texture" : "image.png",
|
"texture" : "image.png",
|
||||||
"pivot" : { "x" : 1, "y" : 2 },
|
|
||||||
"texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
|
"texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"texture" : "image.png",
|
"texture" : "image.png",
|
||||||
"pivot" : { "x" : 1, "y" : 2 },
|
|
||||||
"inner_texrect" : { "x" : 1, "y" : 2, "w" : 3, "h" : 4 },
|
"inner_texrect" : { "x" : 1, "y" : 2, "w" : 3, "h" : 4 },
|
||||||
"outer_texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
|
"outer_texrect" : { "x" : 5, "y" : 6, "w" : 7, "h" : 8 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -192,14 +192,12 @@ TEST_CASE("library"){
|
|||||||
|
|
||||||
sprite_asset::ptr spr = atlas_res->find_nested_asset<sprite_asset>("sprite");
|
sprite_asset::ptr spr = atlas_res->find_nested_asset<sprite_asset>("sprite");
|
||||||
REQUIRE(spr);
|
REQUIRE(spr);
|
||||||
REQUIRE(spr->content().pivot() == v2f(1.f,2.f));
|
|
||||||
REQUIRE(spr->content().inner_texrect() == b2f(5.f,6.f,7.f,8.f));
|
REQUIRE(spr->content().inner_texrect() == b2f(5.f,6.f,7.f,8.f));
|
||||||
REQUIRE(spr->content().outer_texrect() == b2f(5.f,6.f,7.f,8.f));
|
REQUIRE(spr->content().outer_texrect() == b2f(5.f,6.f,7.f,8.f));
|
||||||
REQUIRE(spr->content().texture()== texture_res);
|
REQUIRE(spr->content().texture()== texture_res);
|
||||||
|
|
||||||
sprite_asset::ptr spr2 = atlas_res->find_nested_asset<sprite_asset>("sprite2");
|
sprite_asset::ptr spr2 = atlas_res->find_nested_asset<sprite_asset>("sprite2");
|
||||||
REQUIRE(spr2);
|
REQUIRE(spr2);
|
||||||
REQUIRE(spr2->content().pivot() == v2f(1.f,2.f));
|
|
||||||
REQUIRE(spr2->content().inner_texrect() == b2f(1.f,2.f,3.f,4.f));
|
REQUIRE(spr2->content().inner_texrect() == b2f(1.f,2.f,3.f,4.f));
|
||||||
REQUIRE(spr2->content().outer_texrect() == b2f(5.f,6.f,7.f,8.f));
|
REQUIRE(spr2->content().outer_texrect() == b2f(5.f,6.f,7.f,8.f));
|
||||||
REQUIRE(spr2->content().texture()== texture_res);
|
REQUIRE(spr2->content().texture()== texture_res);
|
||||||
@@ -208,14 +206,12 @@ TEST_CASE("library"){
|
|||||||
{
|
{
|
||||||
auto sprite_res = l.load_asset<sprite_asset>("sprite.json");
|
auto sprite_res = l.load_asset<sprite_asset>("sprite.json");
|
||||||
REQUIRE(sprite_res);
|
REQUIRE(sprite_res);
|
||||||
REQUIRE(sprite_res->content().pivot() == v2f(1.f, 2.f));
|
|
||||||
REQUIRE(sprite_res->content().inner_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
|
REQUIRE(sprite_res->content().inner_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
|
||||||
REQUIRE(sprite_res->content().outer_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
|
REQUIRE(sprite_res->content().outer_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
|
||||||
REQUIRE(sprite_res->content().texture() == texture_res);
|
REQUIRE(sprite_res->content().texture() == texture_res);
|
||||||
|
|
||||||
auto sprite2_res = l.load_asset<sprite_asset>("sprite2.json");
|
auto sprite2_res = l.load_asset<sprite_asset>("sprite2.json");
|
||||||
REQUIRE(sprite2_res);
|
REQUIRE(sprite2_res);
|
||||||
REQUIRE(sprite2_res->content().pivot() == v2f(1.f, 2.f));
|
|
||||||
REQUIRE(sprite2_res->content().inner_texrect() == b2f(1.f, 2.f, 3.f, 4.f));
|
REQUIRE(sprite2_res->content().inner_texrect() == b2f(1.f, 2.f, 3.f, 4.f));
|
||||||
REQUIRE(sprite2_res->content().outer_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
|
REQUIRE(sprite2_res->content().outer_texrect() == b2f(5.f, 6.f, 7.f, 8.f));
|
||||||
REQUIRE(sprite2_res->content().texture() == texture_res);
|
REQUIRE(sprite2_res->content().texture() == texture_res);
|
||||||
|
|||||||
Reference in New Issue
Block a user