From 43a787a5bd435ca38033e7e53ef4374a9019cb7e Mon Sep 17 00:00:00 2001 From: RUNQILIU-123 <835852842@qq.com> Date: Sun, 5 Apr 2026 18:11:40 +1000 Subject: [PATCH] Add mouse_clicked usage example --- .../input/mouse_clicked-1-example-oop.cs | 37 ++++++++++++++++++ .../mouse_clicked-1-example-top-level.cs | 29 ++++++++++++++ .../input/mouse_clicked-1-example.cpp | 32 +++++++++++++++ .../input/mouse_clicked-1-example.png | Bin 0 -> 16640 bytes .../input/mouse_clicked-1-example.py | 21 ++++++++++ .../input/mouse_clicked-1-example.txt | 3 ++ 6 files changed, 122 insertions(+) create mode 100644 public/usage-examples/input/mouse_clicked-1-example-oop.cs create mode 100644 public/usage-examples/input/mouse_clicked-1-example-top-level.cs create mode 100644 public/usage-examples/input/mouse_clicked-1-example.cpp create mode 100644 public/usage-examples/input/mouse_clicked-1-example.png create mode 100644 public/usage-examples/input/mouse_clicked-1-example.py create mode 100644 public/usage-examples/input/mouse_clicked-1-example.txt diff --git a/public/usage-examples/input/mouse_clicked-1-example-oop.cs b/public/usage-examples/input/mouse_clicked-1-example-oop.cs new file mode 100644 index 000000000..066f5a991 --- /dev/null +++ b/public/usage-examples/input/mouse_clicked-1-example-oop.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using SplashKitSDK; + +namespace MouseClickedExample +{ + public class Program + { + public static void Main() + { + SplashKit.OpenWindow("Click to Place Markers", 800, 600); + + List clicks = new(); + + while (!SplashKit.QuitRequested()) + { + SplashKit.ProcessEvents(); + + // Add a marker where the left mouse button was clicked + if (SplashKit.MouseClicked(MouseButton.LeftButton)) + { + clicks.Add(SplashKit.MousePosition()); + } + + SplashKit.ClearScreen(); + + foreach (Point2D pt in clicks) + { + SplashKit.FillCircle(Color.Red, pt.X, pt.Y, 8); + } + + SplashKit.RefreshScreen(60); + } + + SplashKit.CloseAllWindows(); + } + } +} \ No newline at end of file diff --git a/public/usage-examples/input/mouse_clicked-1-example-top-level.cs b/public/usage-examples/input/mouse_clicked-1-example-top-level.cs new file mode 100644 index 000000000..f08daa800 --- /dev/null +++ b/public/usage-examples/input/mouse_clicked-1-example-top-level.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using SplashKitSDK; +using static SplashKitSDK.SplashKit; + +OpenWindow("Click to Place Markers", 800, 600); + +List clicks = new(); + +while (!QuitRequested()) +{ + ProcessEvents(); + + // Add a marker where the left mouse button was clicked + if (MouseClicked(MouseButton.LeftButton)) + { + clicks.Add(MousePosition()); + } + + ClearScreen(ColorWhite()); + + foreach (Point2D pt in clicks) + { + FillCircle(ColorRed(), pt.X, pt.Y, 8); + } + + RefreshScreen(60); +} + +CloseAllWindows(); \ No newline at end of file diff --git a/public/usage-examples/input/mouse_clicked-1-example.cpp b/public/usage-examples/input/mouse_clicked-1-example.cpp new file mode 100644 index 000000000..a6d78f1aa --- /dev/null +++ b/public/usage-examples/input/mouse_clicked-1-example.cpp @@ -0,0 +1,32 @@ +#include "splashkit.h" +#include + +int main() +{ + open_window("Click to Place Markers", 800, 600); + + std::vector clicks; + + while (!quit_requested()) + { + process_events(); + + // Add a marker where the left mouse button was clicked + if (mouse_clicked(LEFT_BUTTON)) + { + clicks.push_back(mouse_position()); + } + + clear_screen(color_white()); + + for (const point_2d &pt : clicks) + { + fill_circle(COLOR_RED, pt.x, pt.y, 8); + } + + refresh_screen(60); + } + + close_all_windows(); + return 0; +} \ No newline at end of file diff --git a/public/usage-examples/input/mouse_clicked-1-example.png b/public/usage-examples/input/mouse_clicked-1-example.png new file mode 100644 index 0000000000000000000000000000000000000000..c56ef1fa94dc9ce8f21797c37d041330fb47a03e GIT binary patch literal 16640 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