From bfd98c1cea7b3a75ea419d0449f91f17fa83799b Mon Sep 17 00:00:00 2001 From: OusmBlueNinja <89956790+OusmBlueNinja@users.noreply.github.com> Date: Fri, 25 Apr 2025 11:26:33 -0500 Subject: [PATCH] Made particles, per particle instead of an offset fron emiter --- imgui.ini | 2 +- remake/build.log | 2 +- src/src/Components/ParticleComponent.cpp | 6 ++++-- src/src/Engine.cpp | 3 ++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/imgui.ini b/imgui.ini index a5fd028..1ce1346 100644 --- a/imgui.ini +++ b/imgui.ini @@ -102,6 +102,6 @@ DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1920,1158 Split=X DockNode ID=0x00000004 Parent=0x00000001 SizeRef=342,581 HiddenTabBar=1 Selected=0x36AF052B DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1056,701 Split=Y Selected=0xC450F867 DockNode ID=0x00000007 Parent=0x00000002 SizeRef=606,847 CentralNode=1 HiddenTabBar=1 Selected=0xC450F867 - DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,309 Selected=0x3FC1A724 + DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,309 Selected=0x9B5D3198 DockNode ID=0x00000006 Parent=0x11111111 SizeRef=518,1158 HiddenTabBar=1 Selected=0x36DC96AB diff --git a/remake/build.log b/remake/build.log index d560a46..c8a5aa3 100644 --- a/remake/build.log +++ b/remake/build.log @@ -1,3 +1,3 @@ -[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Renderer.cpp -o src\build\Renderer.o +[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Engine.cpp -o src\build\Engine.o [LINK] g++ src\build\Engine.o src\build\main.o src\build\Renderer.o src\build\Components\AnimationComponent.o src\build\Components\CameraComponent.o src\build\Components\LightComponent.o src\build\Components\ParticleComponent.o src\build\Components\PhysicsComponent.o src\build\Components\ScriptComponent.o src\build\Components\SpriteComponent.o src\build\Components\TextComonent.o src\build\Components\TilemapComponent.o src\build\core\utils\AssetManager.o src\build\core\utils\EngineConfig.o src\build\core\utils\ExceptionHandler.o src\build\core\utils\FileDialog.o src\build\core\utils\input.o src\build\core\utils\LoadingWindow.o src\build\core\utils\Logging.o src\build\core\utils\Profiler.o src\build\core\utils\Texture.o src\build\core\utils\utils.o src\build\editor\windows\AssetBrowser.o src\build\editor\windows\Inspector.o src\build\Entitys\Object.o src\build\utils\GameObjectsList.o src\build\utils\Shader.o src\build\utils\UID.o src\build\lapi.o src\build\lauxlib.o src\build\lbaselib.o src\build\lcode.o src\build\lcorolib.o src\build\lctype.o src\build\ldblib.o src\build\ldebug.o src\build\ldo.o src\build\ldump.o src\build\lfunc.o src\build\lgc.o src\build\linit.o src\build\liolib.o src\build\llex.o src\build\lmathlib.o src\build\lmem.o src\build\loadlib.o src\build\lobject.o src\build\lopcodes.o src\build\loslib.o src\build\lparser.o src\build\lstate.o src\build\lstring.o src\build\lstrlib.o src\build\ltable.o src\build\ltablib.o src\build\ltm.o src\build\lua.o src\build\luac.o src\build\lundump.o src\build\lutf8lib.o src\build\lvm.o src\build\lzio.o src\build\imgui.o src\build\imgui_demo.o src\build\imgui_draw.o src\build\imgui_impl_glfw.o src\build\imgui_impl_opengl3.o src\build\imgui_tables.o src\build\imgui_widgets.o src\build\aabb.o src\build\arena_allocator.o src\build\array.o src\build\bitset.o src\build\body.o src\build\broad_phase.o src\build\constraint_graph.o src\build\contact.o src\build\contact_solver.o src\build\core.o src\build\distance.o src\build\distance_joint.o src\build\dynamic_tree.o src\build\geometry.o src\build\hull.o src\build\id_pool.o src\build\island.o src\build\joint.o src\build\manifold.o src\build\math_functions.o src\build\motor_joint.o src\build\mouse_joint.o src\build\mover.o src\build\prismatic_joint.o src\build\revolute_joint.o src\build\sensor.o src\build\shape.o src\build\solver.o src\build\solver_set.o src\build\table.o src\build\timer.o src\build\types.o src\build\weld_joint.o src\build\wheel_joint.o src\build\world.o src\build\xxhash.o -o src\build\app.exe -LC:\msys64\mingw64\lib -lglfw3 -lglew32 -lopengl32 -lgdi32 -lyaml-cpp -lcomdlg32 -lssl -lcrypto [RUN] Executed app.exe successfully. diff --git a/src/src/Components/ParticleComponent.cpp b/src/src/Components/ParticleComponent.cpp index d0e9387..3514092 100644 --- a/src/src/Components/ParticleComponent.cpp +++ b/src/src/Components/ParticleComponent.cpp @@ -66,8 +66,10 @@ void ParticleComponent::SpawnParticle() float speed = randRange(settings.speedMin, settings.speedMax); p.velocity = Vec2(std::cos(angle), std::sin(angle)) * speed; - p.position = Vec2(0.0f, 0.0f); - p.rotation = randRange(0.0f, 6.28318f); // 2π + p.position = owner ? core::types::Vec2(owner->GetWorldPosition()) : core::types::Vec2(0.0f, 0.0f); + + + p.rotation = randRange(0.0f, 6.28318f); // 2pi p.color = settings.startColor; particles.push_back(p); diff --git a/src/src/Engine.cpp b/src/src/Engine.cpp index 0f4ebda..cac6744 100644 --- a/src/src/Engine.cpp +++ b/src/src/Engine.cpp @@ -978,13 +978,14 @@ void Engine::Run() float t = std::clamp(1.0f - (p.life / settings.lifeMax), 0.0f, 1.0f); core::types::Color color = core::types::Color::Lerp(settings.startColor, settings.endColor, t); - core::types::Vec2 pWorld = p.position + particle->GetOwner()->GetWorldPosition(); + core::types::Vec2 pWorld = p.position; core::types::Vec2 size = core::types::Vec2(p.size, p.size); Renderer::BatchQuad(pWorld, size, p.rotation, color, cameraPos, cameraZoom, settings.roundness); } profiler.EndSection(); } + } profiler.EndSection();