emerald 0.3.214

A lite, fully featured 2D game engine.
Documentation
use emerald::{tilemap::Tilemap, *};

pub fn main() {
    emerald::start(
        Box::new(TilemapExample {
            world: World::new(),
        }),
        GameSettings::default(),
    )
}

pub struct TilemapExample {
    world: World,
}
impl Game for TilemapExample {
    fn initialize(&mut self, mut emd: Emerald) {
        emd.set_asset_folder_root(String::from("./examples/assets/"));
        let tileset_key = emd.loader().texture("tileset.png").unwrap();
        let mut tilemap = Tilemap::new(tileset_key, Vector2::new(16, 16), 2, 2, 4, 4);

        tilemap.set_tile(0, 0, Some(0)).unwrap();
        tilemap.set_tile(1, 0, Some(1)).unwrap();
        tilemap.set_tile(0, 1, Some(2)).unwrap();
        tilemap.set_tile(1, 1, Some(3)).unwrap();

        self.world.spawn((tilemap, Transform::default()));
    }

    fn update(&mut self, _emd: Emerald) {}

    fn draw(&mut self, mut emd: Emerald) {
        emd.graphics().begin().unwrap();
        emd.graphics().draw_world(&mut self.world).unwrap();
        emd.graphics().render().unwrap();
    }
}