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: f32Screenshake time remaining.
shake_amount: f32Amount of screenshake to apply.
recoil: f32§center: Vec2Center 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: f32Smoothing speed when target is set.
deadzone_width: f32Width of the camera deadzone in world space.
deadzone_height: f32Height 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: boolOverride 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().