Improve Physics2DDemo

This commit is contained in:
SirLynix 2022-12-18 15:04:10 +01:00
parent 627b7a1972
commit a1e62adb71
1 changed files with 9 additions and 9 deletions

View File

@ -66,14 +66,14 @@ int main()
Nz::TextureParams texParams;
texParams.renderDevice = device;
texParams.loadFormat = Nz::PixelFormat::RGBA8_SRGB;
texParams.loadFormat = Nz::PixelFormat::RGBA8;
std::shared_ptr<Nz::MaterialInstance> material = Nz::Graphics::Instance()->GetDefaultMaterials().phongMaterial->Instantiate();
material->SetTextureProperty("BaseColorMap", Nz::Texture::LoadFromFile(resourceDir / "Spaceship/Texture/diffuse.png", texParams));
material->SetTextureProperty("BaseColorMap", Nz::Texture::LoadFromFile(resourceDir / "box.png", texParams));
for (std::size_t y = 0; y < 10; ++y)
for (std::size_t y = 0; y < 30; ++y)
{
for (std::size_t x = 0; x < 10; ++x)
for (std::size_t x = 0; x < 30; ++x)
{
entt::entity spriteEntity = registry.create();
{
@ -81,11 +81,12 @@ int main()
sprite->SetSize({ 32.f, 32.f });
sprite->SetOrigin({ 0.5f, 0.5f });
registry.emplace<Nz::NodeComponent>(spriteEntity).SetPosition(1920 / 2 + x * 36.f, 1080 / 2 + y * 36.f);
registry.emplace<Nz::NodeComponent>(spriteEntity).SetPosition(windowSize.x * 0.5f + x * 48.f - 15.f * 48.f, windowSize.y / 2 + y * 48.f);
registry.emplace<Nz::GraphicsComponent>(spriteEntity).AttachRenderable(sprite, 1);
auto& rigidBody = registry.emplace<Nz::RigidBody2DComponent>(spriteEntity, physSytem.CreateRigidBody(50.f, std::make_shared<Nz::BoxCollider2D>(Nz::Vector2f(32.f, 32.f))));
rigidBody.SetElasticity(0.99f);
rigidBody.SetFriction(0.9f);
//rigidBody.SetElasticity(0.99f);
}
}
}
@ -94,7 +95,6 @@ int main()
{
std::shared_ptr<Nz::Tilemap> tilemap = std::make_shared<Nz::Tilemap>(Nz::Vector2ui(40, 20), Nz::Vector2f(64.f, 64.f), 18);
tilemap->SetOrigin({ 0.5f, 0.5f });
tilemap->EnableIsometricMode(true);
for (std::size_t i = 0; i < 18; ++i)
{
std::shared_ptr<Nz::MaterialInstance> material = Nz::Graphics::Instance()->GetDefaultMaterials().basicTransparent->Clone();
@ -111,10 +111,10 @@ int main()
}
}
registry.emplace<Nz::NodeComponent>(groundEntity).SetPosition(1920.f / 2.f, 0.f);
registry.emplace<Nz::NodeComponent>(groundEntity).SetPosition(windowSize.x * 0.5f, -windowSize.y * 0.2f);
registry.emplace<Nz::GraphicsComponent>(groundEntity).AttachRenderable(tilemap, 1);
auto& rigidBody = registry.emplace<Nz::RigidBody2DComponent>(groundEntity, physSytem.CreateRigidBody(0.f, std::make_shared<Nz::BoxCollider2D>(tilemap->GetSize())));
rigidBody.SetElasticity(0.99f);
rigidBody.SetFriction(0.9f);
}
Nz::EulerAnglesf camAngles(0.f, 0.f, 0.f);