Expand description
An opinionated 2D game framework for Rust.
§Features
- Minimal and opinionated API
- Simple but flexible callback system
- Easy input handling via polling
- Efficient 2D renderer with sprite batching, powered by
fugu
- Asset loader with support for custom formats
§Getting Started
To add pufferfish to your project, add the following to the dependencies
section of your Cargo.toml
:
pufferfish = "0.1"
See the examples/
directory in the source to get a feel of how
pufferfish’s API works.
A basic pufferfish program looks something like this:
use pufferfish::graphics::{Color, Graphics};
use pufferfish::App;
struct State {
// Your game state...
}
fn main() {
App::new()
.with_title("Hello World")
.add_state(State::new()) // Add your state
.add_init_callback(init) // Add your callbacks
.add_frame_callback(update)
.add_frame_callback(draw)
.run();
}
fn init(state: &mut State) {
// Initialization code here...
}
fn update(state: &mut State) {
// Update code here...
}
// Request arbitrary state through the callback's type signature
fn draw(state: &State, g: &Graphics) {
g.clear(Color::BLACK);
g.begin();
// Draw code here...
g.end();
}
Modules§
- assets
- Types relating to resource management and asset loading.
- graphics
- Types relating to graphics and drawing.
- input
- Types relating to user input.
- text
- Types related to fonts and text rendering.
Structs§
- App
- A
pufferfish
application. - TypeMap
- A heterogeneous collection that can store one value of each type.
Traits§
- Callback
- An interface for callbacks.