logo

Struct bevy::core::Timer[]

pub struct Timer { /* fields omitted */ }
Expand description

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

Creates a new timer with a given duration.

See also Timer::from_seconds.

Creates a new timer with a given duration in seconds.

Example
let mut timer = Timer::from_seconds(1.0, false);

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());

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());

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));

Returns the time elapsed on the timer as a f32. See also Timer::elapsed.

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());

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));

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));

Returns true if the timer is repeating.

Examples
let mut timer = Timer::from_seconds(1.0, true);
assert!(timer.repeating());

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());

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);

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);

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);

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());

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);

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);

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);

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Returns a serializable value, if serialization is supported. Otherwise None will be returned. Read more

Returns a hash of the value (which includes the type) if hashing is supported. Otherwise None will be returned. Read more

Returns a “partial equal” comparison result if comparison is supported. Otherwise None will be returned. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Performs the conversion.

Creates Self using data from the given World

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more