Sprites
Simple Usage Examples
Create Sprite
Creating a Player Sprite
The following code is an example of using Create Sprite to create a sprite of a 2D game character and draw it on a SplashKit window.
#include "splashkit.h"
int main(){ window start = open_window("create_sprite", 600, 600);
// Load the bitmap for creating a sprite bitmap player = load_bitmap("player_bitmap", "player.png");
// Create the player sprite sprite player_sprite = create_sprite(player);
sprite_set_x(player_sprite, 300); sprite_set_y(player_sprite, 300);
clear_screen(COLOR_BLACK); draw_sprite(player_sprite); refresh_screen(); delay(5000); close_all_windows();
return 0;}using SplashKitSDK;using static SplashKitSDK.SplashKit;
Window start = OpenWindow("create_sprite", 600, 600);
// Load the bitmap for creating a spriteBitmap player = LoadBitmap("player_bitmap", "player.png");
// Create the player spriteSprite playerSprite = CreateSprite(player);
playerSprite.X = 300;playerSprite.Y = 300;
ClearScreen(ColorBlack());DrawSprite(playerSprite);RefreshScreen();Delay(5000);CloseAllWindows();Output:
![]()
Draw Sprite
Drawing a Player Sprite
The following code is an example of using Draw Sprite to create a sprite of a 2D game character and draw it on a SplashKit window.
#include "splashkit.h"
int main(){ window start = open_window("draw_sprite", 600, 600);
load_bitmap("player", "player.png"); sprite player_sprite = create_sprite(bitmap_named("player")); sprite_set_x(player_sprite, 300); sprite_set_y(player_sprite, 300);
clear_screen(COLOR_BLACK);
// Draw the sprite draw_sprite(player_sprite);
refresh_screen(); delay(5000); close_all_windows();
return 0;}using static SplashKitSDK.SplashKit;using SplashKitSDK;
OpenWindow("draw_sprite", 600, 600);
LoadBitmap("player", "player.png");Sprite playerSprite = CreateSprite(BitmapNamed("player"));SpriteSetX(playerSprite, 300);SpriteSetY(playerSprite, 300);
ClearScreen(ColorBlack());
// Draw the spriteDrawSprite(playerSprite);
RefreshScreen();Delay(5000);CloseAllWindows();Output:
![]()
Free Sprite
Freeing a Sprite
The following code is an example of using Free Sprite to free a sprite when the UP key is typed and after the window is closed.
#include "splashkit.h"
int main(){ open_window("free_sprite", 600, 600);
bitmap player = load_bitmap("player", "player.png"); sprite player_sprite = create_sprite(bitmap_named("player")); sprite_set_x(player_sprite, 300); sprite_set_y(player_sprite, 300);
bool sprite_exists = true; // Track if the sprite exists
while (!quit_requested()) { process_events();
clear_screen(COLOR_BLACK); if (sprite_exists) { draw_sprite(player_sprite); update_sprite(player_sprite); } refresh_screen();
// If UP key is typed, the sprite is removed if (sprite_exists && key_typed(UP_KEY)) { free_sprite(player_sprite); sprite_exists = false; // Set bool to false to stop drawing/updating } }
// Clean up if (sprite_exists) { free_sprite(player_sprite); }
close_all_windows();
return 0;}using static SplashKitSDK.SplashKit;using SplashKitSDK;
OpenWindow("free_sprite", 600, 600);
LoadBitmap("player", "player.png");Sprite playerSprite = CreateSprite(BitmapNamed("player"));SpriteSetX(playerSprite, 300);SpriteSetY(playerSprite, 300);
bool spriteExists = true; // Track if the sprite exists
while (!QuitRequested()){ ProcessEvents();
ClearScreen(Color.Black); if (spriteExists) { DrawSprite(playerSprite); UpdateSprite(playerSprite); } RefreshScreen();
// If UP key is typed, the sprite is removed if (spriteExists && KeyTyped(KeyCode.UpKey)) { FreeSprite(playerSprite); spriteExists = false; // Set bool to false to stop drawing/updating }}
// Clean upif (spriteExists){ FreeSprite(playerSprite);}
CloseAllWindows();Output:
![]()
Sprite Set Position
Setting Sprite Position
The following code is an example of using Sprite Set Position to set a new location of a Sprite on a SplashKit window.
#include "splashkit.h"
int main(){ open_window("sprite_set_position", 600, 600);
load_bitmap("player", "player-run.png"); sprite player_sprite = create_sprite(bitmap_named("player")); sprite_set_x(player_sprite, 200); sprite_set_y(player_sprite, 300);
clear_screen(COLOR_BLACK); draw_sprite(player_sprite); refresh_screen(); delay(2000);
// Create point_2d object which stores the new coordinates point_2d pos = point_at(450, 300);
// Set the new sprite position sprite_set_position(player_sprite, pos);
clear_screen(COLOR_BLACK); draw_sprite(player_sprite); refresh_screen(); delay(5000);
close_all_windows();
return 0;}using static SplashKitSDK.SplashKit;using SplashKitSDK;
OpenWindow("sprite_set_position", 600, 600);
LoadBitmap("player", "player-run.png");Sprite playerSprite = CreateSprite(BitmapNamed("player"));SpriteSetX(playerSprite, 200);SpriteSetY(playerSprite, 300);
ClearScreen(ColorBlack());DrawSprite(playerSprite);RefreshScreen();Delay(2000);
// Create Point2D object which stores the new coordinatesPoint2D pos = PointAt(450, 300);
// Set the new sprite positionSpriteSetPosition(playerSprite, pos);
ClearScreen(ColorBlack());DrawSprite(playerSprite);RefreshScreen();Delay(5000);
CloseAllWindows();Output:
![]()
Sprite Set Velocity
Setting Velocity of Sprite
The following code is an example of using Sprite Set Velocity to set a small horizontal velocity (moving to the right) for a sprite on a window.
#include "splashkit.h"
int main(){ open_window("sprite-set-velocity", 600, 600);
load_bitmap("player", "player-run.png"); sprite player_sprite = create_sprite(bitmap_named("player")); sprite_set_x(player_sprite, 300); sprite_set_y(player_sprite, 300);
// Create vector for sprite's velocity vector_2d vel = vector_to(0.01,0);
while (!quit_requested()) { process_events();
// Set sprite velocity and update sprite sprite_set_velocity(player_sprite, vel); update_sprite(player_sprite);
clear_screen(COLOR_BLACK); draw_sprite(player_sprite); refresh_screen(); }
close_all_windows();
return 0;}using static SplashKitSDK.SplashKit;using SplashKitSDK;
OpenWindow("spriteSetVelocity", 600, 600);
LoadBitmap("player", "player-run.png");Sprite playerSprite = CreateSprite(BitmapNamed("player"));SpriteSetX(playerSprite, 300);SpriteSetY(playerSprite, 300);
// Create vector for sprite's velocityVector2D vel = VectorTo(0.01,0);
while (!QuitRequested()){ ProcessEvents();
// Set sprite velocity and update sprite SpriteSetVelocity(playerSprite, vel); UpdateSprite(playerSprite);
ClearScreen(ColorBlack()); DrawSprite(playerSprite); RefreshScreen();}
CloseAllWindows();Output:
![]()
Sprite Set X
Setting Sprite x-coordinate
The following code is an example of using Sprite Set X which sets the x-coordinate of a Sprite on a SplashKit window.
#include "splashkit.h"
int main(){ open_window("sprite_set_x", 600, 600);
load_bitmap("player", "player-run.png"); sprite player_sprite = create_sprite(bitmap_named("player"));
// Setting the x coordinate in refrence to the window sprite_set_x(player_sprite, 300);
clear_screen(COLOR_BLACK); draw_sprite(player_sprite); refresh_screen(); delay(5000);
close_all_windows();
return 0;}using static SplashKitSDK.SplashKit;using SplashKitSDK;
OpenWindow("sprite_set_x", 600, 600);
LoadBitmap("player", "player-run.png");Sprite playerSprite = CreateSprite(BitmapNamed("player"));
// Setting the x coordinate in reference to the windowSpriteSetX(playerSprite, 300);
ClearScreen(ColorBlack());DrawSprite(playerSprite);RefreshScreen();Delay(5000);
CloseAllWindows();Output:
![]()
Sprite Set Y
Setting Sprite y-coordinate
The following code is an example of using Sprite Set Y which sets the y-coordinate of a Sprite on a SplashKit window.
#include "splashkit.h"
int main(){ open_window("sprite_set_x", 600, 600);
load_bitmap("player", "player-run.png"); sprite player_sprite = create_sprite(bitmap_named("player"));
// Setting the y coordinate in refrence to the window sprite_set_y(player_sprite, 300);
clear_screen(COLOR_BLACK); draw_sprite(player_sprite); refresh_screen(); delay(5000);
close_all_windows();
return 0;}using static SplashKitSDK.SplashKit;using SplashKitSDK;
OpenWindow("sprite_set_x", 600, 600);
LoadBitmap("player", "player-run.png");Sprite playerSprite = CreateSprite(BitmapNamed("player"));
// Setting the y coordinate in reference to the windowSpriteSetY(playerSprite, 300);
ClearScreen(ColorBlack());DrawSprite(playerSprite);RefreshScreen();Delay(5000);
CloseAllWindows();Output:
![]()