Coder Social home page Coder Social logo

bevy_fly_camera's Introduction

Crates.io

bevy-fly-camera

This is a really basic flying camera bundle and plugin for Bevy. It's useful for testing games before you've coded your own movement system.

It features both a 3d camera with Minecraft-style motion, and a 2d camera without mouse-looking.

Keybinds can be edited, but the defaults are:

3D

  • W / A / S / D - Move along the horizontal plane
  • Space - Move upward
  • L Shift - Move downward
use bevy::prelude::*;
use bevy_fly_camera::{FlyCamera, FlyCameraPlugin};

fn setup(commands: &mut Commands) {
  commands
    .spawn(Camera3dBundle::default())
    .with(FlyCamera::default());
}

fn main() {
  App::new()
    .add_plugins(DefaultPlugins)
    .add_startup_system(setup)
    .add_plugin(FlyCameraPlugin)
    .run();
}

Runnable 3D Example

2D

  • W / A / S / D - Move along the 2d plane
use bevy::prelude::*;
use bevy_fly_camera::{FlyCamera2d, FlyCameraPlugin};

fn setup(commands: &mut Commands) {
  commands
    .spawn(Camera2dBundle::default())
    .with(FlyCamera2d::default());
}

fn main() {
  App::new()
    .add_plugins(DefaultPlugins)
    .add_startup_system(setup)
    .add_plugin(FlyCameraPlugin)
    .run();
}

Runnable 2D Example


If you like this crate, there are some issues that I would love to get some help on to make it more maintainable!

If you use this crate in a project, I'd love to know about it! Send me a message or just open an issue about it! โ™ฅ

Any PRs are also welcome, though keep in mind that the project scope is intentionally tiny: A quick and dirty 3D motion camera, almost entirely intended for intermediate development steps or 3D demos.


Version Matching

Bevy Version bevy_fly_camera Version
0.1.0 0.1.1
0.1.3 0.3.0
0.2 0.4.0
0.2.1 0.4.1
0.3.0 0.5.0
0.4.0 0.6.0
0.5.0 0.7.0
0.6.0 0.8.0
0.9.0 0.9.0
0.10.0 0.10.0

bevy_fly_camera's People

Contributors

glindstedt avatar mcpar-land avatar pikminguts92 avatar sburris0 avatar superdump avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

bevy_fly_camera's Issues

Initial camera transform values

I am trying to create a camera with a default position, for ease of use. I noticed that as soon as the camera is enabled, the initial set rotation is discarded. I suspect this has to do with something like pitch and yaw defaulting to 0 and resetting any rotations.

For reproducing, try the following:

// ... create the camera
camera.transform = Transform::from_xyz(10f32, 10f32, 10f32).looking_at(Vec3::ZERO, Vec3::Y);

Explain speed and max_speed

max_speed is quite self-explanatory, but having played with it's value I see no effect.

speed would mean for me the actual temporary speed, but by default the camera is not moving. It's only moving, when a key is pressed. Isn't it more about acceleration, than speed?

Also the default value mentioned in comments doesn't match the actual default value.

Friction not applied

When you move in some direction, then suddenly decide to move the opposite direction, (for example: holding D, then suddenly changing it to holding A), friction is not applied during slowing down, so it takes long time. (It's faster to change direction by completely releasing every button, and then going opposite direction when you're fully stopped).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.