Struct bevy_core::prelude::Timer [−][src]
Tracks elapsed time. Enters the finished state once duration
is reached.
Non repeating timers will stop tracking and stay in the finished state until reset.
Repeating timers will only be in the finished state on each tick duration
is reached or
exceeded, and can still be reset at any given point.
Paused timers will not have elapsed time increased.
Implementations
impl Timer
[src]
pub fn new(duration: Duration, repeating: bool) -> Self
[src]
Creates a new timer with a given duration.
See also Timer::from_seconds
.
pub fn from_seconds(duration: f32, repeating: bool) -> Self
[src]
Creates a new timer with a given duration in seconds.
Example
let mut timer = Timer::from_seconds(1.0, false);
pub fn finished(&self) -> bool
[src]
Returns true
if the timer has reached its duration.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, false); timer.tick(Duration::from_secs_f32(1.5)); assert!(timer.finished()); timer.tick(Duration::from_secs_f32(0.5)); assert!(timer.finished());
pub fn just_finished(&self) -> bool
[src]
Returns true
only on the tick the timer reached its duration.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, false); timer.tick(Duration::from_secs_f32(1.5)); assert!(timer.just_finished()); timer.tick(Duration::from_secs_f32(0.5)); assert!(!timer.just_finished());
pub fn elapsed(&self) -> Duration
[src]
Returns the time elapsed on the timer. Guaranteed to be between 0.0 and duration
.
Will only equal duration
when the timer is finished and non repeating.
See also Stopwatch::elapsed
.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, false); timer.tick(Duration::from_secs_f32(0.5)); assert_eq!(timer.elapsed(), Duration::from_secs_f32(0.5));
pub fn elapsed_secs(&self) -> f32
[src]
Returns the time elapsed on the timer as a f32
.
See also Timer::elapsed
.
pub fn set_elapsed(&mut self, time: Duration)
[src]
Sets the elapsed time of the timer without any other considerations.
See also Stopwatch::set
.
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, false); timer.set_elapsed(Duration::from_secs(2)); assert_eq!(timer.elapsed(), Duration::from_secs(2)); // the timer is not finished even if the elapsed time is greater than the duration. assert!(!timer.finished());
pub fn duration(&self) -> Duration
[src]
Returns the duration of the timer.
Examples
use std::time::Duration; let timer = Timer::new(Duration::from_secs(1), false); assert_eq!(timer.duration(), Duration::from_secs(1));
pub fn set_duration(&mut self, duration: Duration)
[src]
Sets the duration of the timer.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.5, false); timer.set_duration(Duration::from_secs(1)); assert_eq!(timer.duration(), Duration::from_secs(1));
pub fn repeating(&self) -> bool
[src]
Returns true
if the timer is repeating.
Examples
let mut timer = Timer::from_seconds(1.0, true); assert!(timer.repeating());
pub fn set_repeating(&mut self, repeating: bool)
[src]
Sets whether the timer is repeating or not.
Examples
let mut timer = Timer::from_seconds(1.0, true); timer.set_repeating(false); assert!(!timer.repeating());
pub fn tick(&mut self, delta: Duration) -> &Self
[src]
Advance the timer by delta
seconds.
Non repeating timer will clamp at duration.
Repeating timer will wrap around.
See also Stopwatch::tick
.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, false); let mut repeating = Timer::from_seconds(1.0, true); timer.tick(Duration::from_secs_f32(1.5)); repeating.tick(Duration::from_secs_f32(1.5)); assert_eq!(timer.elapsed_secs(), 1.0); assert_eq!(repeating.elapsed_secs(), 0.5);
pub fn pause(&mut self)
[src]
Pauses the Timer. Disables the ticking of the timer.
See also Stopwatch::pause
.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, false); timer.pause(); timer.tick(Duration::from_secs_f32(0.5)); assert_eq!(timer.elapsed_secs(), 0.0);
pub fn unpause(&mut self)
[src]
Unpauses the Timer. Resumes the ticking of the timer.
See also Stopwatch::unpause()
.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, false); timer.pause(); timer.tick(Duration::from_secs_f32(0.5)); timer.unpause(); timer.tick(Duration::from_secs_f32(0.5)); assert_eq!(timer.elapsed_secs(), 0.5);
pub fn paused(&self) -> bool
[src]
Returns true
if the timer is paused.
See also Stopwatch::paused
.
Examples
let mut timer = Timer::from_seconds(1.0, false); assert!(!timer.paused()); timer.pause(); assert!(timer.paused()); timer.unpause(); assert!(!timer.paused());
pub fn reset(&mut self)
[src]
Resets the timer. the reset doesn’t affect the paused
state of the timer.
See also Stopwatch::reset
.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, false); timer.tick(Duration::from_secs_f32(1.5)); timer.reset(); assert!(!timer.finished()); assert!(!timer.just_finished()); assert_eq!(timer.elapsed_secs(), 0.0);
pub fn percent(&self) -> f32
[src]
Returns the percentage of the timer elapsed time (goes from 0.0 to 1.0).
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(2.0, false); timer.tick(Duration::from_secs_f32(0.5)); assert_eq!(timer.percent(), 0.25);
pub fn percent_left(&self) -> f32
[src]
Returns the percentage of the timer remaining time (goes from 0.0 to 1.0).
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(2.0, false); timer.tick(Duration::from_secs_f32(0.5)); assert_eq!(timer.percent_left(), 0.75);
pub fn times_finished(&self) -> u32
[src]
Returns the number of times a repeating timer
finished during the last tick
call.
For non repeating-timers, this method will only ever return 0 or 1.
Examples
use std::time::Duration; let mut timer = Timer::from_seconds(1.0, true); timer.tick(Duration::from_secs_f32(6.0)); assert_eq!(timer.times_finished(), 6); timer.tick(Duration::from_secs_f32(2.0)); assert_eq!(timer.times_finished(), 2); timer.tick(Duration::from_secs_f32(0.5)); assert_eq!(timer.times_finished(), 0);
Trait Implementations
impl Clone for Timer
[src]
impl Debug for Timer
[src]
impl Default for Timer
[src]
impl GetTypeRegistration for Timer
[src]
impl Reflect for Timer
[src]
fn type_name(&self) -> &str
[src]
fn any(&self) -> &dyn Any
[src]
fn any_mut(&mut self) -> &mut dyn Any
[src]
fn clone_value(&self) -> Box<dyn Reflect>
[src]
fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>
[src]
fn apply(&mut self, value: &dyn Reflect)
[src]
fn reflect_ref(&self) -> ReflectRef<'_>
[src]
fn reflect_mut(&mut self) -> ReflectMut<'_>
[src]
fn serializable(&self) -> Option<Serializable<'_>>
[src]
fn reflect_hash(&self) -> Option<u64>
[src]
fn reflect_partial_eq(&self, value: &dyn Reflect) -> Option<bool>
[src]
impl Struct for Timer
[src]
fn field(&self, name: &str) -> Option<&dyn Reflect>
[src]
fn field_mut(&mut self, name: &str) -> Option<&mut dyn Reflect>
[src]
fn field_at(&self, index: usize) -> Option<&dyn Reflect>
[src]
fn field_at_mut(&mut self, index: usize) -> Option<&mut dyn Reflect>
[src]
fn name_at(&self, index: usize) -> Option<&str>
[src]
fn field_len(&self) -> usize
[src]
fn iter_fields(&self) -> FieldIter<'_>
[src]
fn clone_dynamic(&self) -> DynamicStruct
[src]
Auto Trait Implementations
impl RefUnwindSafe for Timer
impl Send for Timer
impl Sync for Timer
impl Unpin for Timer
impl UnwindSafe for Timer
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Component for T where
T: 'static + Send + Sync,
[src]
T: 'static + Send + Sync,
impl<T> Downcast for T where
T: Any,
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Any + Send + Sync,
T: Any + Send + Sync,
impl<T> From<T> for T
[src]
impl<T> FromWorld for T where
T: Default,
[src]
T: Default,
pub fn from_world(_world: &mut World) -> T
[src]
impl<S> GetField for S where
S: Struct,
[src]
S: Struct,
pub fn get_field<T>(&self, name: &str) -> Option<&T> where
T: Reflect,
[src]
T: Reflect,
pub fn get_field_mut<T>(&mut self, name: &str) -> Option<&mut T> where
T: Reflect,
[src]
T: Reflect,
impl<T> GetPath for T where
T: Reflect,
[src]
T: Reflect,
pub fn path(
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
[src]
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
pub fn path_mut(
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
[src]
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
pub fn get_path<T>(
&'r self,
path: &'p str
) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
[src]
&'r self,
path: &'p str
) -> Result<&'r T, ReflectPathError<'p>> where
T: Reflect,
pub fn get_path_mut<T>(
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>> where
T: Reflect,
[src]
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>> where
T: Reflect,
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
[src]
T: 'static + Send + Sync + Clone,
pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,