Home

Awesome

bevy_crossterm

What is bevy_crossterm?

bevy_crossterm is a Bevy plugin that uses crossterm as a renderer. It provides custom components and events which allow users to develop games for the terminal.

Table of Contents

Features

Demo GIF

demo

Getting Started

See the examples for runnable code and detailed comments.

[dependencies]
bevy = { version = "0.4", default-features = false }
bevy_crossterm = "0.4.0"
use bevy::prelude::*;
use bevy_crossterm::prelude::*;

pub fn main() {
    let mut settings = CrosstermWindowSettings::default();
    settings.set_title("Hello, World!");

    App::build()
        // Add our window settings
        .add_resource(settings)
        // Add the DefaultPlugins before the CrosstermPlugin. The crossterm plugin needs bevy's asset server, and if it's
        // not available you'll trigger an assert
        .add_plugins(DefaultPlugins)
        .add_plugin(CrosstermPlugin)
        .add_startup_system(startup_system.system())
        .run();
}

fn startup_system(
    commands: &mut Commands,
    mut sprites: ResMut<Assets<Sprite>>,
    mut stylemaps: ResMut<Assets<StyleMap>>,
) {
    commands
        .spawn(SpriteBundle {
            sprite: sprites.add(Sprite::new("Hello, world!")),
            stylemap: stylemaps.add(StyleMap::default()),
            ..Default::default()
        });
}

Press Control-c to exit at any time.