diff --git a/examples/quickwings/assets/base.png b/examples/quickwings/assets/base.png index 2ba45d3..26fa391 100644 Binary files a/examples/quickwings/assets/base.png and b/examples/quickwings/assets/base.png differ diff --git a/examples/quickwings/quickwings.cpp b/examples/quickwings/quickwings.cpp index f8a4995..a49f5c6 100644 --- a/examples/quickwings/quickwings.cpp +++ b/examples/quickwings/quickwings.cpp @@ -176,33 +176,44 @@ struct Grass { paradiso::Sprite grassRight; paradiso::Sprite* scrolling[2] = {&grassLeft, &grassRight}; - paradiso::Renderer renderer{}; + paradiso::Renderer renderer1{}; + paradiso::Renderer renderer2{}; Grass() { auto grassImage = paradiso::BitmapIO::get().load("base.png"); grassLeft = paradiso::Sprite{ .bitmap = grassImage, - .pivot = {paradiso::Vector2::make(1.0f, -0.9f)}, - .scale = {paradiso::Vector2::make(2.0f, 0.33333f)}}; + .pivot = {paradiso::Vector2::make(0.0f, -0.9f)}, + .scale = {paradiso::Vector2::make(((500.0f - (500.0f - 504.0f)) / 500.0f) * 2.25f, ((700.0f - (700.0f - 112.0f)) / 700.0f) * 2.25f)}}; grassRight = paradiso::Sprite{ .bitmap = grassImage, - .pivot = {paradiso::Vector2::make(1.0f, -0.9f)}, - .scale = {paradiso::Vector2::make(2.6f, 0.33333f)}}; + .pivot = {paradiso::Vector2::make(1.002f, -0.9f)}, + .scale = {paradiso::Vector2::make(((500.0f - (500.0f - 504.0f)) / 500.0f) * 2.25f, ((700.0f - (700.0f - 112.0f)) / 700.0f) * 2.25f)}}; } void draw(const paradiso::Shader& shader) { - for (auto sprite : scrolling) { - if (game_over == false) { - if (sprite->pivot.x() <= -1.0f) { - sprite->pivot.x() += 2.0f; - } - sprite->pivot.x() -= 0.02f; + if (game_over == false) { + grassLeft.pivot.x() -= 0.02f; + grassRight.pivot.x() -= 0.02f; + + if (grassRight.pivot.x() <= 0.0f) { + grassLeft.pivot.x() = 1.002f; + } + if (grassRight.pivot.x() <= -1.002f) { + grassRight.pivot.x() = 1.002f; } - shader.set_uniform("pivot", sprite->pivot); - shader.set_uniform("scale", sprite->scale); - shader.set_uniform("rotation", sprite->rotation); - renderer.draw(*sprite, shader); } + + shader.set_uniform("pivot", grassLeft.pivot); + shader.set_uniform("scale", grassLeft.scale); + shader.set_uniform("rotation", grassLeft.rotation); + + shader.set_uniform("pivot", grassRight.pivot); + shader.set_uniform("scale", grassRight.scale); + shader.set_uniform("rotation", grassRight.rotation); + + renderer1.draw(grassLeft, shader); + renderer2.draw(grassRight, shader); } };