Expand description
macroquad
is a simple and easy to use game library for Rust programming language.
macroquad
attempts to avoid any rust-specific programming concepts like lifetimes/borrowing, making it very friendly for rust beginners.
Supported platforms
- PC: Windows/Linux/MacOS
- HTML5
- Android
- IOS
Features
- Same code for all supported platforms, no platform dependent defines required
- Efficient 2D rendering with automatic geometry batching
- Minimal amount of dependencies: build after
cargo clean
takes only 16s on x230(~6years old laptop) - Immediate mode UI library included
- Single command deploy for both WASM and Android build instructions
Example
use macroquad::prelude::*;
#[macroquad::main("BasicShapes")]
async fn main() {
loop {
clear_background(RED);
draw_line(40.0, 40.0, 100.0, 200.0, 15.0, BLUE);
draw_rectangle(screen_width() / 2.0 - 60.0, 100.0, 120.0, 60.0, GREEN);
draw_circle(screen_width() - 30.0, screen_height() - 30.0, 15.0, YELLOW);
draw_text("HELLO", 20.0, 20.0, 20.0, DARKGRAY);
next_frame().await
}
}
Re-exports
Modules
Loading and playing sounds.
2D and 3D camera.
Color types and helpers.
The most unstable things in macroquad Some of them will eventually move to other modules, some will move into separate crates and some may just disappear.
Cross platform file management functions.
Cross-platform mouse, keyboard (and gamepads soon) module.
Custom materials - shaders, uniforms.
Math types and helpers.
3D shapes and models, loading 3d models from files, drawing 3D primitives.
Most common types that can be glob-imported use macroquad::prelude::*
for convenience.
Cross platform random generator.
2D shapes rendering.
Functions to load fonts and draw text.
Loading and rendering textures. Also render textures, per-pixel image manipulations.
Cross platform system time access and FPS counters.
Immediate mode UI.
Window and associated to window rendering context related functions.
Macros
Build a color from 4 components of 0..255 values This is a temporary solution and going to be replaced with const fn, waiting for https://github.com/rust-lang/rust/issues/57241
Attribute Macros
Macroquad entry point.