Crates.io | pufferfish |
lib.rs | pufferfish |
version | 0.1.1 |
source | src |
created_at | 2022-04-03 02:43:54.568172 |
updated_at | 2022-06-05 05:23:50.932176 |
description | An opinionated 2D game framework |
homepage | |
repository | https://github.com/pufferfish-rs/pufferfish/ |
max_upload_size | |
id | 561136 |
size | 96,752 |
:warning: DISCLAIMER: pufferfish is in very early stages of development. APIs can and will change, many basic features are missing, and parts of this README may not reflect the current state of the crate. I would recommend against using this in your projects just yet, but for those brave enough, now is the time for suggestions and feature requests!
fugu
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();
}