3 releases

0.1.2 Jan 23, 2021
0.1.1 Jan 23, 2021
0.1.0 Jan 12, 2021

#1854 in Game dev

MIT license

29KB
285 lines

Crates.io

A 4X style camera for bevy. Demo

Default Key Bindings:

  • W / A / S / D / Arrow Keys / Mouse Left - Move along the horizontal plane
  • Q / E / Mouse Right - Rotate around the center
  • Mouse Wheel - Zoom

Example

use bevy::{prelude::*, render::camera::PerspectiveProjection};
use bevy_4x_camera::{CameraRigBundle, FourXCameraPlugin};

fn main() {
    App::build()
        .add_plugins(DefaultPlugins)
        .add_plugin(FourXCameraPlugin)
        .add_startup_system(setup.system())
        .run();
}

fn setup(commands: &mut Commands) {
    commands
        // camera
        .spawn(CameraRigBundle::default())
        .with_children(|cb| {
            cb.spawn(Camera3dBundle {
                // I recommend setting the fov to a low value to get a
                // a pseudo-orthographic perspective
                perspective_projection: PerspectiveProjection {
                    fov: 0.1,
                    ..Default::default()
                },
                transform: Transform::from_translation(Vec3::new(-20.0, 20., 0.0))
                    .looking_at(Vec3::zero(), Vec3::unit_y()),
                ..Default::default()
            });
        });
}

Version Matching

Bevy Version bevy_4x_camera Version
0.4.0 0.1.0

Dependencies

~15–24MB
~364K SLoC