diff --git a/examples/pong/pong.cpp b/examples/pong/pong.cpp index 11f89f0..2b979f7 100644 --- a/examples/pong/pong.cpp +++ b/examples/pong/pong.cpp @@ -1,7 +1,7 @@ /** * paradiso - Paradigmen der Softwareentwicklung * - * (c) Copyright 2023 Hartmut Seichter + * (c) Copyright 2023-2024 Hartmut Seichter * */ @@ -16,7 +16,6 @@ #include -#include #include struct PongStage { @@ -86,7 +85,7 @@ struct PongPaddle { velocity_horizontal *= whoopiness; sprite.pivot.x() += velocity_horizontal; - std::clamp(sprite.pivot.x(), -0.5f, 0.5f); + sprite.pivot.x() = std::clamp(sprite.pivot.x(), -0.5f, 0.5f); // update shader uniforms shader.set_uniform("pivot", sprite.pivot); @@ -151,7 +150,7 @@ struct PongBall { void draw(const paradiso::Shader& shader) { - std::clamp(sprite.pivot.x(), -0.5f, 0.5f); + sprite.pivot.x() = std::clamp(sprite.pivot.x(), -0.5f, 0.5f); // update shader uniforms shader.set_uniform("pivot", sprite.pivot); @@ -166,6 +165,9 @@ struct PongBall { paradiso::Renderer renderer{}; constexpr void push(const auto& impulse) noexcept { velocity += impulse; } + + constexpr void whoop(const auto& whoopiness) noexcept { velocity *= whoopiness; } + }; auto main() -> int { @@ -234,6 +236,19 @@ auto main() -> int { ball.sprite.pivot.x() = 0.0f; ball.sprite.pivot.y() = 0.9f; } + // speed adjust + if (w.keyboard_input().top().key == 'N') { + + std::cout << "Speed Up!\n"; + + ball.push(paradiso::Vector2::make(0.f,0.01f)); + + } else if (w.keyboard_input().top().key == 'M') { + + ball.push(paradiso::Vector2::make(0.f,-0.01f)); + + std::cout << "Speed Lower!\n"; + } } ball.interact(stage); @@ -251,4 +266,4 @@ auto main() -> int { }; return 0; -} \ No newline at end of file +}