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 API. Allows creation and manipulation of layers including the primary draw target, a layer 0.
Structs
- Mirror of
olc::Decal
. A GPU resident storage of anolc::Sprite
. - olcPixelGameEngine error.
- Mirror of
olc::HWButton
. Represents the button state, either keyboard or mouse. - Mirror of
olc::Pixel
. Represents a 32-bit RGBA value. - Mirror of
olc::Sprite
. An image represented by a 2D array ofolc::Pixel
.
Enums
- Mirror of
olc::Key
. Represents a key on a keyboard. - Mirror of
olc::Pixel::Mode
. - Mirror of
olc::Sprite::Flip
. - Mirror of
olc::Sprite::Mode
.
Constants
Traits
- Application trait, should be extended by an implementation and passed to
start
function.
Functions
- Utility C++ rand function, equivalent of
rand()
. See http://www.cplusplus.com/reference/cstdlib/rand for more information. - Sets seed for C++ rand function, equivalent of
srand(seed)
. See http://www.cplusplus.com/reference/cstdlib/srand for more information. - Clears entire draw target to Pixel.
- Clears the rendering back buffer.
- Draws pixel at coordinates (x, y).
- Draws a circle located at (x, y) with radius.
- Draws a circle located at (x, y) with radius. Allows to set mask.
- Draws a whole decal with default scale and tinting.
- Draws a whole decal with scale and tinting.
- Draws a line from (x1, y1) to (x2, y2).
- Draws a line from (x1, y1) to (x2, y2). Allows to set pattern.
- Draws a region of a decal with default scale and tint.
- Draws a region of a decal with scale and tinting.
- Draws partial rotated decal with default scale and tinting.
- Draws partial rotated decal.
- Draws an area of a sprite at location (x, y), where the selected area is (ox, oy) to (ox+w, oy+h).
- 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.
- Draws partial warped decal with default tinting.
pos
is an array of 4 positions. - Draws partial warped decal.
pos
is an array of 4 positions. - Draws a rectangle at (x, y) to (x+w, y+h).
- Draws rotated decal with default center, scale, and tinting.
- Draws rotated decal with custom center, scale, and tinting.
- Draws an entire sprite at the location (x, y).
- Draws an entire sprite at the location (x, y) with provided scale and flip.
- Draws string.
- Draws string decal with default colour and scale.
- Draws string decal with colour and scale.
- Draws string. Allows to set scale.
- Draws a triangle between points (x1, y1), (x2, y2) and (x3, y3).
- Draws warped decal with default tinting.
pos
is an array of 4 positions. - Draws warped decal.
pos
is an array of 4 positions. - Fills a circle located at (x, y) with radius.
- Fills a rectangle at (x, y) to (x+w, y+h).
- Flat fills a triangle between points (x1, y1), (x2, y2) and (x3, y3).
- Returns the height of the currently selected drawing target in “pixels”.
- Returns the width of the currently selected drawing target in “pixels”.
- Gets the current Frames Per Second.
- Returns the state of a specific keyboard button.
- Returns the state of a specific mouse button.
- Returns mouse wheel delta.
- Returns mouse X coordinate in “pixel” space.
- Returns mouse Y coordinate in “pixel” space.
- Returns the current pixel mode.
- Whether or not the window is focused.
- Returns the height of the screen in “pixels”.
- Returns the width of the screen in “pixels”.
- Changes the blend factor form between 0.0f to 1.0f.
- Changes the pixel mode for different optimisations.
- Resizes the primary screen sprite.
- Starts the main game loop.
- Starts the main game loop with configurable full screen and vsync.
Type Definitions
- Mirror of
olc::vf2d
. A 2D float vector type. Implementsstd::ops::Add
,std::ops::Sub
,std::ops::Mul
, andstd::ops::Div
as well as all their assignment equivalents. - Mirror of
olc::vi2d
. A 2D integer vector type. Implementsstd::ops::Add
,std::ops::Sub
,std::ops::Mul
, andstd::ops::Div
as well as all their assignment equivalents.