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
impl MainCamera
pub fn new(center: Vec2, zoom: f32) -> Self
pub fn update(&mut self, delta: f32)
pub fn push_center(&mut self, new_center: Vec2, new_zoom: f32)
pub fn pop_center(&mut self)
pub fn bump_recoil(&mut self, amount: f32)
pub fn world_viewport(&self) -> Vec2
pub fn screen_top_left(&self) -> Vec2
pub fn screen_top_right(&self) -> Vec2
pub fn shake(&mut self, amount: f32, time: f32)
pub fn current_shake(&self) -> f32
pub fn build_view_projection_matrix(&self) -> Mat4
pub fn screen_to_world(&self, position: Vec2) -> Vec2
pub fn world_to_screen(&self, position: Vec2) -> Vec2
pub fn world_to_render_px(&self, position: Vec2, render_scale: f32) -> IVec2
Trait Implementations§
Auto Trait Implementations§
impl Freeze for MainCamera
impl !RefUnwindSafe for MainCamera
impl Send for MainCamera
impl Sync for MainCamera
impl Unpin for MainCamera
impl !UnwindSafe for MainCamera
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.