Bevy Mod Transform2d

Crates.io MIT/Apache 2.0

A 2D Transform component for Bevy.

Usage

Add the dependency to your Cargo.toml

toml [dependencies] bevy_mod_transform2d = "0.3"

Example:

```rust use bevy::prelude::; use bevy_mod_transform2d::prelude::;

fn main() { App::new() .addplugins(DefaultPlugins) // Add the Transform2dPlugin .addplugin(Transform2dPlugin) .addstartupsystem(setup) .add_system(orbit) .run(); }

fn setup(mut commands: Commands) { commands.spawn(Camera2dBundle::default());

commands.spawn((
    SpriteBundle {
        sprite: Sprite {
            custom_size: Some(Vec2::splat(50.)),
            ..default()
        },
        ..default()
    },
    // Add a Transform2d component
    Transform2d::from_xy(200., 0.),
));

}

// Make the sprite orbit the center using the 2d transform. fn orbit(mut query: Query<&mut Transform2d, With>, time: Res

Take a look at the other examples.

Version table.

|Bevy |transform2d |- |- | 0.9 |0.3 | 0.8 |0.2 | 0.7 |0.1

Further details

Note that the Transform2d component does not replace Transform component, instead it writes to it. The Transform and GlobalTransform components are required for Transform2d to function.

See [bevymod2dhierarchy] for an alternative plugin that does not require the Transform component. Note that, for this reason, [bevymod2dhierarchy] is not compatible with crates that interact with Transform (eg. bevy_rapier2d), and does not support parenting 3D transforms to 2D ones (useful for 2.5D games).

Intergration with other crates

To integrate with another library that modifies Transform the state of Transform and Transform2d will need to be synchronised at the right times.

An intergration with bevy_rapier2d is included and can be enabled as a feature: toml [dependencies] bevy_mod_transform2d = { version = "0.3", features = ["bevy_rapier2d"] }

If there is another plugin that interacts with the transform here's how you would synchronise the state to make Transform2d compatible with that plugin.


License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.