#bevy #parallax #gamedev #bit-flags #game

bevy_parallaxation2d

Crate providing simple 2D parallax layers in Bevy

3 releases

0.1.2 Aug 1, 2024
0.1.1 Jul 29, 2024
0.1.0 Jul 29, 2024

#735 in Game dev

MIT/Apache

41KB
692 lines

bevy_parallaxation2d

License Crates.io Downloads CI

Crate providing simple 2D parallax layers in Bevy.

In this crate:

  • ParallaxPlugin - Plugin required for the parallax functionality.
  • ParallaxCamera - Component for marking the parallax camera.
  • ParallaxLayer - Component for creating a parallax layer.
  • ParallaxFlags - Bit flags for defining attributes of a parallax layer.

Examples

This is a simple example of how to use the crate.

use bevy::prelude::*;

// Import `bevy_parallaxation2d`
use bevy_parallaxation2d::prelude::*;

fn main() {
    App::new()
        // Use parallax plugin
        .add_plugins((DefaultPlugins, ParallaxPlugin::default()))
        .add_systems(Startup, setup)
        .run();
}

fn setup(mut commands: Commands) {
    // Spawn parallax camera
    commands
        .spawn(Camera2dBundle::default())
        .insert(ParallaxCamera);

    // Spawn parallax layers
    commands.spawn_batch(vec![
        ParallaxLayer {
            image: "main_background.png",
            depth: 80.0.into(),
            flags: ParallaxFlags::REPEAT_X_AXIS | ParallaxFlags::REPEAT_Y_AXIS,
            ..default()
        },
        ParallaxLayer {
            image: "foreground.png",
            depth: (-5.0).into(),
            ..default()
        },
    ]);
}

This repository features an example you can run with

cargo run --example mountains

Compatibility

bevy bevy_parallaxation2d
0.13 0.1

Dependencies

~38–75MB
~1.5M SLoC