Crate olc_pixel_game_engine

Source
Expand description

olcPixelGameEngine Rust API.

See documentation on the invidual structs, enums, and functions for more information. All of the root API functions and drawing routines are normally called as olc::<function>(...) similar to C++ code.

Here is an example that shows how to implement Application trait and call olcPixelGameEngine drawing functions.

extern crate olc_pixel_game_engine;

use crate::olc_pixel_game_engine as olc;

// Very simple example application that prints "Hello, World!" on screen.

struct ExampleProgram {}

impl olc::Application for ExampleProgram {
  fn on_user_create(&mut self) -> Result<(), olc::Error> {
    // Mirrors `olcPixelGameEngine::onUserCreate`. Your code goes here.
    Ok(())
  }

  fn on_user_update(&mut self, _elapsed_time: f32) -> Result<(), olc::Error> {
    // Mirrors `olcPixelGameEngine::onUserUpdate`. Your code goes here.

    // Clears screen and sets black colour.
    olc::clear(olc::BLACK);
    // Prints the string starting at the position (40, 40) and using white colour.
    olc::draw_string(40, 40, "Hello, World!", olc::WHITE)?;
    Ok(())
  }

  fn on_user_destroy(&mut self) -> Result<(), olc::Error> {
    // Mirrors `olcPixelGameEngine::onUserDestroy`. Your code goes here.
    Ok(())
  }
}

fn main() {
  let mut example = ExampleProgram {};
  // Launches the program in 200x100 "pixels" screen, where each "pixel" is 4x4 pixel square,
  // and starts the main game loop.
  olc::start("Hello, World!", &mut example, 200, 100, 4, 4).unwrap();
}

Modules§

layer
Layer API. Allows creation and manipulation of layers including the primary draw target, a layer 0.

Structs§

Decal
Mirror of olc::Decal. A GPU resident storage of an olc::Sprite.
Error
olcPixelGameEngine error.
HWButton
Mirror of olc::HWButton. Represents the button state, either keyboard or mouse.
Pixel
Mirror of olc::Pixel. Represents a 32-bit RGBA value.
Sprite
Mirror of olc::Sprite. An image represented by a 2D array of olc::Pixel.
V2d
Generic 2D vector type. See Vf2d and Vi2d for more information.

Enums§

Key
Mirror of olc::Key. Represents a key on a keyboard.
PixelMode
Mirror of olc::Pixel::Mode.
SpriteFlip
Mirror of olc::Sprite::Flip.
SpriteMode
Mirror of olc::Sprite::Mode.

Constants§

BLACK
BLANK
BLUE
CYAN
DARK_BLUE
DARK_CYAN
DARK_GREEN
DARK_GREY
DARK_MAGENTA
DARK_RED
DARK_YELLOW
GREEN
GREY
MAGENTA
RED
VERY_DARK_BLUE
VERY_DARK_CYAN
VERY_DARK_GREEN
VERY_DARK_GREY
VERY_DARK_MAGENTA
VERY_DARK_RED
VERY_DARK_YELLOW
WHITE
YELLOW

Traits§

Application
Application trait, should be extended by an implementation and passed to start function.

Functions§

c_rand
Utility C++ rand function, equivalent of rand(). See http://www.cplusplus.com/reference/cstdlib/rand for more information.
c_srand
Sets seed for C++ rand function, equivalent of srand(seed). See http://www.cplusplus.com/reference/cstdlib/srand for more information.
clear
Clears entire draw target to Pixel.
clear_buffer
Clears the rendering back buffer.
draw
Draws pixel at coordinates (x, y).
draw_circle
Draws a circle located at (x, y) with radius.
draw_circle_with_mask
Draws a circle located at (x, y) with radius. Allows to set mask.
draw_decal
Draws a whole decal with default scale and tinting.
draw_decal_ext
Draws a whole decal with scale and tinting.
draw_line
Draws a line from (x1, y1) to (x2, y2).
draw_line_with_pattern
Draws a line from (x1, y1) to (x2, y2). Allows to set pattern.
draw_partial_decal
Draws a region of a decal with default scale and tint.
draw_partial_decal_ext
Draws a region of a decal with scale and tinting.
draw_partial_rotated_decal
Draws partial rotated decal with default scale and tinting.
draw_partial_rotated_decal_ext
Draws partial rotated decal.
draw_partial_sprite
Draws an area of a sprite at location (x, y), where the selected area is (ox, oy) to (ox+w, oy+h).
draw_partial_sprite_ext
Draws an area of a sprite at location (x, y), where the selected area is (ox, oy) to (ox+w, oy+h) with provided scale and flip.
draw_partial_warped_decal
Draws partial warped decal with default tinting. pos is an array of 4 positions.
draw_partial_warped_decal_ext
Draws partial warped decal. pos is an array of 4 positions.
draw_rect
Draws a rectangle at (x, y) to (x+w, y+h).
draw_rotated_decal
Draws rotated decal with default center, scale, and tinting.
draw_rotated_decal_ext
Draws rotated decal with custom center, scale, and tinting.
draw_sprite
Draws an entire sprite at the location (x, y).
draw_sprite_ext
Draws an entire sprite at the location (x, y) with provided scale and flip.
draw_string
Draws string.
draw_string_decal
Draws string decal with default colour and scale.
draw_string_decal_ext
Draws string decal with colour and scale.
draw_string_with_scale
Draws string. Allows to set scale.
draw_triangle
Draws a triangle between points (x1, y1), (x2, y2) and (x3, y3).
draw_warped_decal
Draws warped decal with default tinting. pos is an array of 4 positions.
draw_warped_decal_ext
Draws warped decal. pos is an array of 4 positions.
fill_circle
Fills a circle located at (x, y) with radius.
fill_rect
Fills a rectangle at (x, y) to (x+w, y+h).
fill_triangle
Flat fills a triangle between points (x1, y1), (x2, y2) and (x3, y3).
get_draw_target_height
Returns the height of the currently selected drawing target in “pixels”.
get_draw_target_width
Returns the width of the currently selected drawing target in “pixels”.
get_fps
Gets the current Frames Per Second.
get_key
Returns the state of a specific keyboard button.
get_mouse
Returns the state of a specific mouse button.
get_mouse_wheel
Returns mouse wheel delta.
get_mouse_x
Returns mouse X coordinate in “pixel” space.
get_mouse_y
Returns mouse Y coordinate in “pixel” space.
get_pixel_mode
Returns the current pixel mode.
is_focused
Whether or not the window is focused.
screen_height
Returns the height of the screen in “pixels”.
screen_width
Returns the width of the screen in “pixels”.
set_pixel_blend
Changes the blend factor form between 0.0f to 1.0f.
set_pixel_mode
Changes the pixel mode for different optimisations.
set_screen_size
Resizes the primary screen sprite.
start
Starts the main game loop.
start_with_full_screen_and_vsync
Starts the main game loop with configurable full screen and vsync.

Type Aliases§

Vf2d
Mirror of olc::vf2d. A 2D float vector type. Implements std::ops::Add, std::ops::Sub, std::ops::Mul, and std::ops::Div as well as all their assignment equivalents.
Vi2d
Mirror of olc::vi2d. A 2D integer vector type. Implements std::ops::Add, std::ops::Sub, std::ops::Mul, and std::ops::Div as well as all their assignment equivalents.