bevy_pixel_buffer 0.8.2

A library to draw pixels in bevy
Documentation
use bevy::prelude::*;
use bevy_pixel_buffer::prelude::*;

fn main() {
    let size = PixelBufferSize {
        size: UVec2::new(32, 32),
        pixel_size: UVec2::new(16, 16),
    };

    App::new()
        .add_plugins((DefaultPlugins, PixelBufferPlugin))
        .add_systems(Startup, pixel_buffer_setup(size))
        .add_systems(PostStartup, draw_random)
        .add_systems(Update, update)
        .run();
}

fn draw_random(mut pb: QueryPixelBuffer) {
    pb.frame().per_pixel(|_, _| Pixel::random());
}

fn update(mut q: Query<&mut Transform, With<PixelBuffer>>, keys: Res<ButtonInput<KeyCode>>) {
    let movement = if keys.just_pressed(KeyCode::ArrowLeft) {
        Some((-1, 0))
    } else if keys.just_pressed(KeyCode::ArrowRight) {
        Some((1, 0))
    } else if keys.just_pressed(KeyCode::ArrowUp) {
        Some((0, 1))
    } else if keys.just_pressed(KeyCode::ArrowDown) {
        Some((0, -1))
    } else {
        None
    };

    if let Some((x, y)) = movement {
        const M: f32 = 10.0;

        let mut transform = q.single_mut();
        transform.translation.x += x as f32 * M;
        transform.translation.y += y as f32 * M;
    }
}