diff --git a/public/usage-examples/CONTRIBUTING.mdx b/public/usage-examples/CONTRIBUTING.mdx index 5dffdbae9..06548d492 100644 --- a/public/usage-examples/CONTRIBUTING.mdx +++ b/public/usage-examples/CONTRIBUTING.mdx @@ -14,6 +14,20 @@ To contribute a function usage example, you need to create the following files: - **Code files** with the example code. This must be a complete code example, not just a snippet of code. - ***Zip file*** (*only if your code requires resource files*) containing the "Resources" folder created with the `skm resources` command, with any resources needed for your example code to run. (More info about adding this at the end.) +## Quick checklist before you open a PR + +- Files are placed in: `/public/usage-examples//` +- File naming follows: `--example.` + - Example: `key_down-1-example.cpp` +- Each example includes: + - `.txt` (title/description, and optional Resources link callout) + - `.cpp` + - `-oop.cs` + - `-top-level.cs` + - `.py` + - output file: `.png` (or `.gif` if interactive, or `.webm` if audio) +- If the example needs assets, include a `*-resources.zip` containing a `Resources/` folder (created using `skm resources`). + ## File Location Place the following files into the folder with the **unique global name** located in `/public/usage-examples/`: diff --git a/public/usage-examples/graphics/fill_circle-01-example-oop.cs b/public/usage-examples/graphics/fill_circle-01-example-oop.cs new file mode 100644 index 000000000..0ee5d302a --- /dev/null +++ b/public/usage-examples/graphics/fill_circle-01-example-oop.cs @@ -0,0 +1,15 @@ +using SplashKitSDK; + +public static class Program { + public static void Main() { + new Window("Drawing Example", 800, 600); + while (!SplashKit.QuitRequested()) { + SplashKit.ProcessEvents(); + SplashKit.ClearScreen(Color.White); + SplashKit.FillCircle(Color.Blue, 400, 300, 50); + SplashKit.FillRectangle(Color.Red, 100, 100, 150, 80); + SplashKit.DrawLine(Color.Green, 50, 50, 750, 550); + SplashKit.RefreshScreen(); + } + } +} diff --git a/public/usage-examples/graphics/fill_circle-01-example-top-level.cs b/public/usage-examples/graphics/fill_circle-01-example-top-level.cs new file mode 100644 index 000000000..40aacf9b5 --- /dev/null +++ b/public/usage-examples/graphics/fill_circle-01-example-top-level.cs @@ -0,0 +1,11 @@ +using SplashKitSDK; + +new Window("Drawing Example", 800, 600); +while (!SplashKit.QuitRequested()) { + SplashKit.ProcessEvents(); + SplashKit.ClearScreen(Color.White); + SplashKit.FillCircle(Color.Blue, 400, 300, 50); + SplashKit.FillRectangle(Color.Red, 100, 100, 150, 80); + SplashKit.DrawLine(Color.Green, 50, 50, 750, 550); + SplashKit.RefreshScreen(); +} diff --git a/public/usage-examples/graphics/fill_circle-01-example.cpp b/public/usage-examples/graphics/fill_circle-01-example.cpp new file mode 100644 index 000000000..f7d562a8a --- /dev/null +++ b/public/usage-examples/graphics/fill_circle-01-example.cpp @@ -0,0 +1,14 @@ +#include "splashkit.h" + +int main() { + open_window("Drawing Example", 800, 600); + while (!quit_requested()) { + process_events(); + clear_screen(COLOR_WHITE); + fill_circle(COLOR_BLUE, 400, 300, 50); + fill_rectangle(COLOR_RED, 100, 100, 150, 80); + draw_line(COLOR_GREEN, 50, 50, 750, 550); + refresh_screen(); + } + return 0; +} diff --git a/public/usage-examples/graphics/fill_circle-01-example.png b/public/usage-examples/graphics/fill_circle-01-example.png new file mode 100644 index 000000000..e69de29bb diff --git a/public/usage-examples/graphics/fill_circle-01-example.py b/public/usage-examples/graphics/fill_circle-01-example.py new file mode 100644 index 000000000..0e1ad50e6 --- /dev/null +++ b/public/usage-examples/graphics/fill_circle-01-example.py @@ -0,0 +1,10 @@ +from splashkit import * + +open_window("Drawing Example", 800, 600) +while not quit_requested(): + process_events() + clear_screen(color_white()) + fill_circle(color_blue(), 400, 300, 50) + fill_rectangle(color_red(), 100, 100, 150, 80) + draw_line(color_green(), 50, 50, 750, 550) + refresh_screen() diff --git a/public/usage-examples/graphics/fill_circle-01-example.txt b/public/usage-examples/graphics/fill_circle-01-example.txt new file mode 100644 index 000000000..5ad29bdc7 --- /dev/null +++ b/public/usage-examples/graphics/fill_circle-01-example.txt @@ -0,0 +1 @@ +Shows drawing basics in SplashKit: clear screen, fill_circle, fill_rectangle, draw_line; refresh each frame. diff --git a/public/usage-examples/input/key_down-01-example-oop.cs b/public/usage-examples/input/key_down-01-example-oop.cs new file mode 100644 index 000000000..23d945127 --- /dev/null +++ b/public/usage-examples/input/key_down-01-example-oop.cs @@ -0,0 +1,26 @@ +using SplashKitSDK; + +public static class Program +{ + public static void Main() + { + new Window("Key Down Example", 800, 600); + + while (!SplashKit.QuitRequested()) + { + SplashKit.ProcessEvents(); + SplashKit.ClearScreen(Color.White); + + if (SplashKit.KeyDown(KeyCode.SpaceKey)) + { + SplashKit.DrawText("Space key is pressed", Color.Black, 200, 300); + } + else + { + SplashKit.DrawText("Press the space key", Color.Black, 200, 300); + } + + SplashKit.RefreshScreen(); + } + } +} diff --git a/public/usage-examples/input/key_down-01-example-top-level.cs b/public/usage-examples/input/key_down-01-example-top-level.cs new file mode 100644 index 000000000..cffb66649 --- /dev/null +++ b/public/usage-examples/input/key_down-01-example-top-level.cs @@ -0,0 +1,20 @@ +using SplashKitSDK; + +new Window("Key Down Example", 800, 600); + +while (!SplashKit.QuitRequested()) +{ + SplashKit.ProcessEvents(); + SplashKit.ClearScreen(Color.White); + + if (SplashKit.KeyDown(KeyCode.SpaceKey)) + { + SplashKit.DrawText("Space key is pressed", Color.Black, 200, 300); + } + else + { + SplashKit.DrawText("Press the space key", Color.Black, 200, 300); + } + + SplashKit.RefreshScreen(); +} diff --git a/public/usage-examples/input/key_down-01-example.cpp b/public/usage-examples/input/key_down-01-example.cpp new file mode 100644 index 000000000..91de7a278 --- /dev/null +++ b/public/usage-examples/input/key_down-01-example.cpp @@ -0,0 +1,25 @@ +#include "splashkit.h" + +int main() +{ + open_window("Key Down Example", 800, 600); + + while (!quit_requested()) + { + process_events(); + clear_screen(COLOR_WHITE); + + if (key_down(SPACE_KEY)) + { + draw_text("Space key is pressed", COLOR_BLACK, 200, 300); + } + else + { + draw_text("Press the space key", COLOR_BLACK, 200, 300); + } + + refresh_screen(); + } + + return 0; +} diff --git a/public/usage-examples/input/key_down-01-example.png b/public/usage-examples/input/key_down-01-example.png new file mode 100644 index 000000000..e69de29bb diff --git a/public/usage-examples/input/key_down-01-example.py b/public/usage-examples/input/key_down-01-example.py new file mode 100644 index 000000000..2e5ce7976 --- /dev/null +++ b/public/usage-examples/input/key_down-01-example.py @@ -0,0 +1,14 @@ +from splashkit import * + +open_window("Key Down Example", 800, 600) + +while not quit_requested(): + process_events() + clear_screen(color_white()) + + if key_down(SPACE_KEY): + draw_text("Space key is pressed", color_black(), 200, 300) + else: + draw_text("Press the space key", color_black(), 200, 300) + + refresh_screen() diff --git a/public/usage-examples/input/key_down-01-example.txt b/public/usage-examples/input/key_down-01-example.txt new file mode 100644 index 000000000..400e9eea8 --- /dev/null +++ b/public/usage-examples/input/key_down-01-example.txt @@ -0,0 +1,2 @@ +Demonstrates how to detect keyboard input using key_down() in SplashKit. +The example displays a message when the space key is pressed. diff --git a/public/usage-examples/input/mouse_x-01-example-oop.cs b/public/usage-examples/input/mouse_x-01-example-oop.cs new file mode 100644 index 000000000..7864b4a56 --- /dev/null +++ b/public/usage-examples/input/mouse_x-01-example-oop.cs @@ -0,0 +1,14 @@ +using SplashKitSDK; + +public static class Program { + public static void Main() { + new Window("Mouse Example", 800, 600); + while (!SplashKit.QuitRequested()) { + SplashKit.ProcessEvents(); + SplashKit.ClearScreen(Color.White); + SplashKit.DrawText("Mouse X: " + SplashKit.MouseX().ToString(), Color.Black, 20, 20); + SplashKit.DrawText("Mouse Y: " + SplashKit.MouseY().ToString(), Color.Black, 20, 45); + SplashKit.RefreshScreen(); + } + } +} diff --git a/public/usage-examples/input/mouse_x-01-example-top-level.cs b/public/usage-examples/input/mouse_x-01-example-top-level.cs new file mode 100644 index 000000000..392fbcf07 --- /dev/null +++ b/public/usage-examples/input/mouse_x-01-example-top-level.cs @@ -0,0 +1,10 @@ +using SplashKitSDK; + +new Window("Mouse Example", 800, 600); +while (!SplashKit.QuitRequested()) { + SplashKit.ProcessEvents(); + SplashKit.ClearScreen(Color.White); + SplashKit.DrawText("Mouse X: " + SplashKit.MouseX().ToString(), Color.Black, 20, 20); + SplashKit.DrawText("Mouse Y: " + SplashKit.MouseY().ToString(), Color.Black, 20, 45); + SplashKit.RefreshScreen(); +} diff --git a/public/usage-examples/input/mouse_x-01-example.cpp b/public/usage-examples/input/mouse_x-01-example.cpp new file mode 100644 index 000000000..817a1fe40 --- /dev/null +++ b/public/usage-examples/input/mouse_x-01-example.cpp @@ -0,0 +1,13 @@ +#include "splashkit.h" + +int main() { + open_window("Mouse Example", 800, 600); + while (!quit_requested()) { + process_events(); + clear_screen(COLOR_WHITE); + draw_text("Mouse X: " + to_string(mouse_x()), COLOR_BLACK, 20, 20); + draw_text("Mouse Y: " + to_string(mouse_y()), COLOR_BLACK, 20, 45); + refresh_screen(); + } + return 0; +} diff --git a/public/usage-examples/input/mouse_x-01-example.png b/public/usage-examples/input/mouse_x-01-example.png new file mode 100644 index 000000000..e69de29bb diff --git a/public/usage-examples/input/mouse_x-01-example.py b/public/usage-examples/input/mouse_x-01-example.py new file mode 100644 index 000000000..d2ef889ef --- /dev/null +++ b/public/usage-examples/input/mouse_x-01-example.py @@ -0,0 +1,9 @@ +from splashkit import * + +open_window("Mouse Example", 800, 600) +while not quit_requested(): + process_events() + clear_screen(color_white()) + draw_text("Mouse X: " + str(mouse_x()), color_black(), 20, 20) + draw_text("Mouse Y: " + str(mouse_y()), color_black(), 20, 45) + refresh_screen() diff --git a/public/usage-examples/input/mouse_x-01-example.txt b/public/usage-examples/input/mouse_x-01-example.txt new file mode 100644 index 000000000..25134c3e2 --- /dev/null +++ b/public/usage-examples/input/mouse_x-01-example.txt @@ -0,0 +1 @@ +Displays current mouse position using mouse_x and mouse_y; updates every frame. diff --git a/public/usage-examples/sprites/create_sprite-01-example-oop.cs b/public/usage-examples/sprites/create_sprite-01-example-oop.cs new file mode 100644 index 000000000..147f75f2b --- /dev/null +++ b/public/usage-examples/sprites/create_sprite-01-example-oop.cs @@ -0,0 +1,15 @@ +using SplashKitSDK; + +public static class Program { + public static void Main() { + new Window("Sprite Example", 800, 600); + Bitmap bmp = SplashKit.LoadBitmap("player", "images/player.png"); + Sprite player = SplashKit.CreateSprite(bmp); + while (!SplashKit.QuitRequested()) { + SplashKit.ProcessEvents(); + SplashKit.ClearScreen(Color.White); + SplashKit.DrawSprite(player); + SplashKit.RefreshScreen(); + } + } +} diff --git a/public/usage-examples/sprites/create_sprite-01-example-resources.zip b/public/usage-examples/sprites/create_sprite-01-example-resources.zip new file mode 100644 index 000000000..27cfc0454 Binary files /dev/null and b/public/usage-examples/sprites/create_sprite-01-example-resources.zip differ diff --git a/public/usage-examples/sprites/create_sprite-01-example-top-level.cs b/public/usage-examples/sprites/create_sprite-01-example-top-level.cs new file mode 100644 index 000000000..b56bc9adc --- /dev/null +++ b/public/usage-examples/sprites/create_sprite-01-example-top-level.cs @@ -0,0 +1,11 @@ +using SplashKitSDK; + +new Window("Sprite Example", 800, 600); +Bitmap bmp = SplashKit.LoadBitmap("player", "images/player.png"); +Sprite player = SplashKit.CreateSprite(bmp); +while (!SplashKit.QuitRequested()) { + SplashKit.ProcessEvents(); + SplashKit.ClearScreen(Color.White); + SplashKit.DrawSprite(player); + SplashKit.RefreshScreen(); +} diff --git a/public/usage-examples/sprites/create_sprite-01-example.cpp b/public/usage-examples/sprites/create_sprite-01-example.cpp new file mode 100644 index 000000000..bf72febff --- /dev/null +++ b/public/usage-examples/sprites/create_sprite-01-example.cpp @@ -0,0 +1,14 @@ +#include "splashkit.h" + +int main() { + open_window("Sprite Example", 800, 600); + bitmap bmp = load_bitmap("player", "images/player.png"); + sprite player = create_sprite(bmp); + while (!quit_requested()) { + process_events(); + clear_screen(COLOR_WHITE); + draw_sprite(player); + refresh_screen(); + } + return 0; +} diff --git a/public/usage-examples/sprites/create_sprite-01-example.png b/public/usage-examples/sprites/create_sprite-01-example.png new file mode 100644 index 000000000..e69de29bb diff --git a/public/usage-examples/sprites/create_sprite-01-example.py b/public/usage-examples/sprites/create_sprite-01-example.py new file mode 100644 index 000000000..96f1321d4 --- /dev/null +++ b/public/usage-examples/sprites/create_sprite-01-example.py @@ -0,0 +1,11 @@ +from splashkit import * + +open_window("Sprite Example", 800, 600) +bmp = load_bitmap("player", "images/player.png") +player = create_sprite(bmp) + +while not quit_requested(): + process_events() + clear_screen(color_white()) + draw_sprite(player) + refresh_screen() diff --git a/public/usage-examples/sprites/create_sprite-01-example.txt b/public/usage-examples/sprites/create_sprite-01-example.txt new file mode 100644 index 000000000..338ccb511 --- /dev/null +++ b/public/usage-examples/sprites/create_sprite-01-example.txt @@ -0,0 +1 @@ +Loads a bitmap, creates a sprite, and draws it each frame. Requires Resources/images/player.png (see resources zip).