Crate pufferfish

Crate pufferfish 

Source
Expand description

An opinionated 2D game framework for Rust.

Docs Crates.io License

§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.