Struct MainCamera

Source
pub struct MainCamera {
Show 13 fields pub shake_timer: f32, pub shake_amount: f32, pub recoil: f32, pub center: Vec2, pub target: Option<Vec2>, pub smoothing_speed: f32, pub deadzone_width: f32, pub deadzone_height: f32, pub aspect_ratio: f32, pub zoom: f32, pub desired_zoom: f32, pub matrix_fn: Option<CameraMatrixFn>, pub use_matrix_fn: bool, /* private fields */
}

Fields§

§shake_timer: f32

Screenshake time remaining.

§shake_amount: f32

Amount of screenshake to apply.

§recoil: f32§center: Vec2

Center of the camera. This updates the camera immediately for the current frame without any smoothing. If you need something set target instead.

§target: Option<Vec2>

Smoothing target for the camera. By default this also uses a deadzone as defined by deadzone_width and deadzone_height. If you don’t want a deadzone, set those to zero.

§smoothing_speed: f32

Smoothing speed when target is set.

§deadzone_width: f32

Width of the camera deadzone in world space.

§deadzone_height: f32

Height of the camera deadzone in world space.

§aspect_ratio: f32§zoom: f32§desired_zoom: f32§matrix_fn: Option<CameraMatrixFn>

Optional camera matrix function that allows the user to create their own projection matrix.

See the implementation of build_view_projection_matrix for what is the default with Mat4::orthographic_rh. Note that this doesn’t have to return an orthographic perspective matrix, it can be anything (perspective projection, etc.).

§use_matrix_fn: bool

Override config allowing to disable matrix_fn even when one is provided. Useful for debugging.

Implementations§

Source§

impl MainCamera

Source

pub fn new(center: Vec2, zoom: f32) -> Self

Source

pub fn update(&mut self, delta: f32)

Source

pub fn push_center(&mut self, new_center: Vec2, new_zoom: f32)

Source

pub fn pop_center(&mut self)

Source

pub fn bump_recoil(&mut self, amount: f32)

Source

pub fn world_viewport(&self) -> Vec2

Source

pub fn screen_top_left(&self) -> Vec2

Source

pub fn screen_top_right(&self) -> Vec2

Source

pub fn shake(&mut self, amount: f32, time: f32)

Source

pub fn current_shake(&self) -> f32

Source

pub fn build_view_projection_matrix(&self) -> Mat4

Source

pub fn screen_to_world(&self, position: Vec2) -> Vec2

Source

pub fn world_to_screen(&self, position: Vec2) -> Vec2

Source

pub fn world_to_render_px(&self, position: Vec2, render_scale: f32) -> IVec2

Trait Implementations§

Source§

impl Default for MainCamera

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> Any for T
where T: Any,

Source§

impl<T> Component for T
where T: Send + Sync + 'static,

Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,