aligning public apis of Time,Timer and Stopwatch (#15962)

Fixes #15834

## Migration Guide

The APIs of `Time`, `Timer` and `Stopwatch` have been cleaned up for
consistency with each other and the standard library's `Duration` type.
The following methods have been renamed:

- `Stowatch::paused` -> `Stopwatch::is_paused`
- `Time::elapsed_seconds` -> `Time::elasped_secs` (including `_f64` and
`_wrapped` variants)
This commit is contained in:
andristarr 2024-10-16 23:09:32 +02:00 committed by GitHub
parent 7495d68b41
commit 7482a0d26d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
118 changed files with 380 additions and 370 deletions

View file

@ -1005,7 +1005,7 @@ pub fn advance_animations(
animation_graphs: Res<Assets<AnimationGraph>>, animation_graphs: Res<Assets<AnimationGraph>>,
mut players: Query<(&mut AnimationPlayer, &AnimationGraphHandle)>, mut players: Query<(&mut AnimationPlayer, &AnimationGraphHandle)>,
) { ) {
let delta_seconds = time.delta_seconds(); let delta_seconds = time.delta_secs();
players players
.par_iter_mut() .par_iter_mut()
.for_each(|(mut player, graph_handle)| { .for_each(|(mut player, graph_handle)| {

View file

@ -122,7 +122,7 @@ pub fn advance_transitions(
for transition in &mut animation_transitions.transitions.iter_mut().rev() { for transition in &mut animation_transitions.transitions.iter_mut().rev() {
// Decrease weight. // Decrease weight.
transition.current_weight = (transition.current_weight transition.current_weight = (transition.current_weight
- transition.weight_decline_per_sec * time.delta_seconds()) - transition.weight_decline_per_sec * time.delta_secs())
.max(0.0); .max(0.0);
// Update weight. // Update weight.

View file

@ -33,7 +33,7 @@ impl FrameTimeDiagnosticsPlugin {
) { ) {
diagnostics.add_measurement(&Self::FRAME_COUNT, || frame_count.0 as f64); diagnostics.add_measurement(&Self::FRAME_COUNT, || frame_count.0 as f64);
let delta_seconds = time.delta_seconds_f64(); let delta_seconds = time.delta_secs_f64();
if delta_seconds == 0.0 { if delta_seconds == 0.0 {
return; return;
} }

View file

@ -74,8 +74,8 @@ fn prepare_globals_buffer(
frame_count: Res<FrameCount>, frame_count: Res<FrameCount>,
) { ) {
let buffer = globals_buffer.buffer.get_mut(); let buffer = globals_buffer.buffer.get_mut();
buffer.time = time.elapsed_seconds_wrapped(); buffer.time = time.elapsed_secs_wrapped();
buffer.delta_time = time.delta_seconds(); buffer.delta_time = time.delta_secs();
buffer.frame_count = frame_count.0; buffer.frame_count = frame_count.0;
globals_buffer globals_buffer

View file

@ -21,7 +21,7 @@ use bevy_utils::Duration;
/// assert_eq!(stopwatch.elapsed_secs(), 1.0); /// assert_eq!(stopwatch.elapsed_secs(), 1.0);
/// ///
/// stopwatch.reset(); // reset the stopwatch /// stopwatch.reset(); // reset the stopwatch
/// assert!(stopwatch.paused()); /// assert!(stopwatch.is_paused());
/// assert_eq!(stopwatch.elapsed_secs(), 0.0); /// assert_eq!(stopwatch.elapsed_secs(), 0.0);
/// ``` /// ```
#[derive(Clone, Debug, Default, PartialEq, Eq)] #[derive(Clone, Debug, Default, PartialEq, Eq)]
@ -29,7 +29,7 @@ use bevy_utils::Duration;
#[cfg_attr(feature = "bevy_reflect", derive(Reflect), reflect(Default))] #[cfg_attr(feature = "bevy_reflect", derive(Reflect), reflect(Default))]
pub struct Stopwatch { pub struct Stopwatch {
elapsed: Duration, elapsed: Duration,
paused: bool, is_paused: bool,
} }
impl Stopwatch { impl Stopwatch {
@ -40,7 +40,7 @@ impl Stopwatch {
/// # use bevy_time::*; /// # use bevy_time::*;
/// let stopwatch = Stopwatch::new(); /// let stopwatch = Stopwatch::new();
/// assert_eq!(stopwatch.elapsed_secs(), 0.0); /// assert_eq!(stopwatch.elapsed_secs(), 0.0);
/// assert_eq!(stopwatch.paused(), false); /// assert_eq!(stopwatch.is_paused(), false);
/// ``` /// ```
pub fn new() -> Self { pub fn new() -> Self {
Default::default() Default::default()
@ -128,7 +128,7 @@ impl Stopwatch {
/// assert_eq!(stopwatch.elapsed_secs(), 1.5); /// assert_eq!(stopwatch.elapsed_secs(), 1.5);
/// ``` /// ```
pub fn tick(&mut self, delta: Duration) -> &Self { pub fn tick(&mut self, delta: Duration) -> &Self {
if !self.paused() { if !self.is_paused() {
self.elapsed = self.elapsed.saturating_add(delta); self.elapsed = self.elapsed.saturating_add(delta);
} }
self self
@ -144,12 +144,12 @@ impl Stopwatch {
/// let mut stopwatch = Stopwatch::new(); /// let mut stopwatch = Stopwatch::new();
/// stopwatch.pause(); /// stopwatch.pause();
/// stopwatch.tick(Duration::from_secs_f32(1.5)); /// stopwatch.tick(Duration::from_secs_f32(1.5));
/// assert!(stopwatch.paused()); /// assert!(stopwatch.is_paused());
/// assert_eq!(stopwatch.elapsed_secs(), 0.0); /// assert_eq!(stopwatch.elapsed_secs(), 0.0);
/// ``` /// ```
#[inline] #[inline]
pub fn pause(&mut self) { pub fn pause(&mut self) {
self.paused = true; self.is_paused = true;
} }
/// Unpauses the stopwatch. Resume the effect of ticking on elapsed time. /// Unpauses the stopwatch. Resume the effect of ticking on elapsed time.
@ -163,12 +163,12 @@ impl Stopwatch {
/// stopwatch.tick(Duration::from_secs_f32(1.0)); /// stopwatch.tick(Duration::from_secs_f32(1.0));
/// stopwatch.unpause(); /// stopwatch.unpause();
/// stopwatch.tick(Duration::from_secs_f32(1.0)); /// stopwatch.tick(Duration::from_secs_f32(1.0));
/// assert!(!stopwatch.paused()); /// assert!(!stopwatch.is_paused());
/// assert_eq!(stopwatch.elapsed_secs(), 1.0); /// assert_eq!(stopwatch.elapsed_secs(), 1.0);
/// ``` /// ```
#[inline] #[inline]
pub fn unpause(&mut self) { pub fn unpause(&mut self) {
self.paused = false; self.is_paused = false;
} }
/// Returns `true` if the stopwatch is paused. /// Returns `true` if the stopwatch is paused.
@ -177,15 +177,15 @@ impl Stopwatch {
/// ``` /// ```
/// # use bevy_time::*; /// # use bevy_time::*;
/// let mut stopwatch = Stopwatch::new(); /// let mut stopwatch = Stopwatch::new();
/// assert!(!stopwatch.paused()); /// assert!(!stopwatch.is_paused());
/// stopwatch.pause(); /// stopwatch.pause();
/// assert!(stopwatch.paused()); /// assert!(stopwatch.is_paused());
/// stopwatch.unpause(); /// stopwatch.unpause();
/// assert!(!stopwatch.paused()); /// assert!(!stopwatch.is_paused());
/// ``` /// ```
#[inline] #[inline]
pub fn paused(&self) -> bool { pub fn is_paused(&self) -> bool {
self.paused self.is_paused
} }
/// Resets the stopwatch. The reset doesn't affect the paused state of the stopwatch. /// Resets the stopwatch. The reset doesn't affect the paused state of the stopwatch.

View file

@ -30,15 +30,15 @@ use {
/// which will set [`delta()`](Time::delta) to zero. /// which will set [`delta()`](Time::delta) to zero.
/// ///
/// These values are also available in seconds as `f32` via /// These values are also available in seconds as `f32` via
/// [`delta_seconds()`](Time::delta_seconds) and /// [`delta_secs()`](Time::delta_secs) and
/// [`elapsed_seconds()`](Time::elapsed_seconds), and also in seconds as `f64` /// [`elapsed_secs()`](Time::elapsed_secs), and also in seconds as `f64`
/// via [`delta_seconds_f64()`](Time::delta_seconds_f64) and /// via [`delta_secs_f64()`](Time::delta_secs_f64) and
/// [`elapsed_seconds_f64()`](Time::elapsed_seconds_f64). /// [`elapsed_secs_f64()`](Time::elapsed_secs_f64).
/// ///
/// Since [`elapsed_seconds()`](Time::elapsed_seconds) will grow constantly and /// Since [`elapsed_secs()`](Time::elapsed_secs) will grow constantly and
/// is `f32`, it will exhibit gradual precision loss. For applications that /// is `f32`, it will exhibit gradual precision loss. For applications that
/// require an `f32` value but suffer from gradual precision loss there is /// require an `f32` value but suffer from gradual precision loss there is
/// [`elapsed_seconds_wrapped()`](Time::elapsed_seconds_wrapped) available. The /// [`elapsed_secs_wrapped()`](Time::elapsed_secs_wrapped) available. The
/// same wrapped value is also available as [`Duration`] and `f64` for /// same wrapped value is also available as [`Duration`] and `f64` for
/// consistency. The wrap period is by default 1 hour, and can be set by /// consistency. The wrap period is by default 1 hour, and can be set by
/// [`set_wrap_period()`](Time::set_wrap_period). /// [`set_wrap_period()`](Time::set_wrap_period).
@ -193,14 +193,14 @@ pub struct Time<T: Default = ()> {
context: T, context: T,
wrap_period: Duration, wrap_period: Duration,
delta: Duration, delta: Duration,
delta_seconds: f32, delta_secs: f32,
delta_seconds_f64: f64, delta_secs_f64: f64,
elapsed: Duration, elapsed: Duration,
elapsed_seconds: f32, elapsed_secs: f32,
elapsed_seconds_f64: f64, elapsed_secs_f64: f64,
elapsed_wrapped: Duration, elapsed_wrapped: Duration,
elapsed_seconds_wrapped: f32, elapsed_secs_wrapped: f32,
elapsed_seconds_wrapped_f64: f64, elapsed_secs_wrapped_f64: f64,
} }
impl<T: Default> Time<T> { impl<T: Default> Time<T> {
@ -222,14 +222,14 @@ impl<T: Default> Time<T> {
/// [`Duration::ZERO`] is allowed and will set [`Self::delta`] to zero. /// [`Duration::ZERO`] is allowed and will set [`Self::delta`] to zero.
pub fn advance_by(&mut self, delta: Duration) { pub fn advance_by(&mut self, delta: Duration) {
self.delta = delta; self.delta = delta;
self.delta_seconds = self.delta.as_secs_f32(); self.delta_secs = self.delta.as_secs_f32();
self.delta_seconds_f64 = self.delta.as_secs_f64(); self.delta_secs_f64 = self.delta.as_secs_f64();
self.elapsed += delta; self.elapsed += delta;
self.elapsed_seconds = self.elapsed.as_secs_f32(); self.elapsed_secs = self.elapsed.as_secs_f32();
self.elapsed_seconds_f64 = self.elapsed.as_secs_f64(); self.elapsed_secs_f64 = self.elapsed.as_secs_f64();
self.elapsed_wrapped = duration_rem(self.elapsed, self.wrap_period); self.elapsed_wrapped = duration_rem(self.elapsed, self.wrap_period);
self.elapsed_seconds_wrapped = self.elapsed_wrapped.as_secs_f32(); self.elapsed_secs_wrapped = self.elapsed_wrapped.as_secs_f32();
self.elapsed_seconds_wrapped_f64 = self.elapsed_wrapped.as_secs_f64(); self.elapsed_secs_wrapped_f64 = self.elapsed_wrapped.as_secs_f64();
} }
/// Advance this clock to a specific `elapsed` time. /// Advance this clock to a specific `elapsed` time.
@ -280,15 +280,15 @@ impl<T: Default> Time<T> {
/// Returns how much time has advanced since the last [`update`](#method.update), as [`f32`] /// Returns how much time has advanced since the last [`update`](#method.update), as [`f32`]
/// seconds. /// seconds.
#[inline] #[inline]
pub fn delta_seconds(&self) -> f32 { pub fn delta_secs(&self) -> f32 {
self.delta_seconds self.delta_secs
} }
/// Returns how much time has advanced since the last [`update`](#method.update), as [`f64`] /// Returns how much time has advanced since the last [`update`](#method.update), as [`f64`]
/// seconds. /// seconds.
#[inline] #[inline]
pub fn delta_seconds_f64(&self) -> f64 { pub fn delta_secs_f64(&self) -> f64 {
self.delta_seconds_f64 self.delta_secs_f64
} }
/// Returns how much time has advanced since [`startup`](#method.startup), as [`Duration`]. /// Returns how much time has advanced since [`startup`](#method.startup), as [`Duration`].
@ -301,16 +301,16 @@ impl<T: Default> Time<T> {
/// ///
/// **Note:** This is a monotonically increasing value. Its precision will degrade over time. /// **Note:** This is a monotonically increasing value. Its precision will degrade over time.
/// If you need an `f32` but that precision loss is unacceptable, /// If you need an `f32` but that precision loss is unacceptable,
/// use [`elapsed_seconds_wrapped`](#method.elapsed_seconds_wrapped). /// use [`elapsed_secs_wrapped`](#method.elapsed_secs_wrapped).
#[inline] #[inline]
pub fn elapsed_seconds(&self) -> f32 { pub fn elapsed_secs(&self) -> f32 {
self.elapsed_seconds self.elapsed_secs
} }
/// Returns how much time has advanced since [`startup`](#method.startup), as [`f64`] seconds. /// Returns how much time has advanced since [`startup`](#method.startup), as [`f64`] seconds.
#[inline] #[inline]
pub fn elapsed_seconds_f64(&self) -> f64 { pub fn elapsed_secs_f64(&self) -> f64 {
self.elapsed_seconds_f64 self.elapsed_secs_f64
} }
/// Returns how much time has advanced since [`startup`](#method.startup) modulo /// Returns how much time has advanced since [`startup`](#method.startup) modulo
@ -324,17 +324,17 @@ impl<T: Default> Time<T> {
/// the [`wrap_period`](#method.wrap_period), as [`f32`] seconds. /// the [`wrap_period`](#method.wrap_period), as [`f32`] seconds.
/// ///
/// This method is intended for applications (e.g. shaders) that require an [`f32`] value but /// This method is intended for applications (e.g. shaders) that require an [`f32`] value but
/// suffer from the gradual precision loss of [`elapsed_seconds`](#method.elapsed_seconds). /// suffer from the gradual precision loss of [`elapsed_secs`](#method.elapsed_secs).
#[inline] #[inline]
pub fn elapsed_seconds_wrapped(&self) -> f32 { pub fn elapsed_secs_wrapped(&self) -> f32 {
self.elapsed_seconds_wrapped self.elapsed_secs_wrapped
} }
/// Returns how much time has advanced since [`startup`](#method.startup) modulo /// Returns how much time has advanced since [`startup`](#method.startup) modulo
/// the [`wrap_period`](#method.wrap_period), as [`f64`] seconds. /// the [`wrap_period`](#method.wrap_period), as [`f64`] seconds.
#[inline] #[inline]
pub fn elapsed_seconds_wrapped_f64(&self) -> f64 { pub fn elapsed_secs_wrapped_f64(&self) -> f64 {
self.elapsed_seconds_wrapped_f64 self.elapsed_secs_wrapped_f64
} }
/// Returns a reference to the context of this specific clock. /// Returns a reference to the context of this specific clock.
@ -356,14 +356,14 @@ impl<T: Default> Time<T> {
context: (), context: (),
wrap_period: self.wrap_period, wrap_period: self.wrap_period,
delta: self.delta, delta: self.delta,
delta_seconds: self.delta_seconds, delta_secs: self.delta_secs,
delta_seconds_f64: self.delta_seconds_f64, delta_secs_f64: self.delta_secs_f64,
elapsed: self.elapsed, elapsed: self.elapsed,
elapsed_seconds: self.elapsed_seconds, elapsed_secs: self.elapsed_secs,
elapsed_seconds_f64: self.elapsed_seconds_f64, elapsed_secs_f64: self.elapsed_secs_f64,
elapsed_wrapped: self.elapsed_wrapped, elapsed_wrapped: self.elapsed_wrapped,
elapsed_seconds_wrapped: self.elapsed_seconds_wrapped, elapsed_secs_wrapped: self.elapsed_secs_wrapped,
elapsed_seconds_wrapped_f64: self.elapsed_seconds_wrapped_f64, elapsed_secs_wrapped_f64: self.elapsed_secs_wrapped_f64,
} }
} }
} }
@ -374,14 +374,14 @@ impl<T: Default> Default for Time<T> {
context: Default::default(), context: Default::default(),
wrap_period: Self::DEFAULT_WRAP_PERIOD, wrap_period: Self::DEFAULT_WRAP_PERIOD,
delta: Duration::ZERO, delta: Duration::ZERO,
delta_seconds: 0.0, delta_secs: 0.0,
delta_seconds_f64: 0.0, delta_secs_f64: 0.0,
elapsed: Duration::ZERO, elapsed: Duration::ZERO,
elapsed_seconds: 0.0, elapsed_secs: 0.0,
elapsed_seconds_f64: 0.0, elapsed_secs_f64: 0.0,
elapsed_wrapped: Duration::ZERO, elapsed_wrapped: Duration::ZERO,
elapsed_seconds_wrapped: 0.0, elapsed_secs_wrapped: 0.0,
elapsed_seconds_wrapped_f64: 0.0, elapsed_secs_wrapped_f64: 0.0,
} }
} }
} }
@ -402,14 +402,14 @@ mod test {
assert_eq!(time.wrap_period(), Time::<()>::DEFAULT_WRAP_PERIOD); assert_eq!(time.wrap_period(), Time::<()>::DEFAULT_WRAP_PERIOD);
assert_eq!(time.delta(), Duration::ZERO); assert_eq!(time.delta(), Duration::ZERO);
assert_eq!(time.delta_seconds(), 0.0); assert_eq!(time.delta_secs(), 0.0);
assert_eq!(time.delta_seconds_f64(), 0.0); assert_eq!(time.delta_secs_f64(), 0.0);
assert_eq!(time.elapsed(), Duration::ZERO); assert_eq!(time.elapsed(), Duration::ZERO);
assert_eq!(time.elapsed_seconds(), 0.0); assert_eq!(time.elapsed_secs(), 0.0);
assert_eq!(time.elapsed_seconds_f64(), 0.0); assert_eq!(time.elapsed_secs_f64(), 0.0);
assert_eq!(time.elapsed_wrapped(), Duration::ZERO); assert_eq!(time.elapsed_wrapped(), Duration::ZERO);
assert_eq!(time.elapsed_seconds_wrapped(), 0.0); assert_eq!(time.elapsed_secs_wrapped(), 0.0);
assert_eq!(time.elapsed_seconds_wrapped_f64(), 0.0); assert_eq!(time.elapsed_secs_wrapped_f64(), 0.0);
} }
#[test] #[test]
@ -419,29 +419,29 @@ mod test {
time.advance_by(Duration::from_millis(250)); time.advance_by(Duration::from_millis(250));
assert_eq!(time.delta(), Duration::from_millis(250)); assert_eq!(time.delta(), Duration::from_millis(250));
assert_eq!(time.delta_seconds(), 0.25); assert_eq!(time.delta_secs(), 0.25);
assert_eq!(time.delta_seconds_f64(), 0.25); assert_eq!(time.delta_secs_f64(), 0.25);
assert_eq!(time.elapsed(), Duration::from_millis(250)); assert_eq!(time.elapsed(), Duration::from_millis(250));
assert_eq!(time.elapsed_seconds(), 0.25); assert_eq!(time.elapsed_secs(), 0.25);
assert_eq!(time.elapsed_seconds_f64(), 0.25); assert_eq!(time.elapsed_secs_f64(), 0.25);
time.advance_by(Duration::from_millis(500)); time.advance_by(Duration::from_millis(500));
assert_eq!(time.delta(), Duration::from_millis(500)); assert_eq!(time.delta(), Duration::from_millis(500));
assert_eq!(time.delta_seconds(), 0.5); assert_eq!(time.delta_secs(), 0.5);
assert_eq!(time.delta_seconds_f64(), 0.5); assert_eq!(time.delta_secs_f64(), 0.5);
assert_eq!(time.elapsed(), Duration::from_millis(750)); assert_eq!(time.elapsed(), Duration::from_millis(750));
assert_eq!(time.elapsed_seconds(), 0.75); assert_eq!(time.elapsed_secs(), 0.75);
assert_eq!(time.elapsed_seconds_f64(), 0.75); assert_eq!(time.elapsed_secs_f64(), 0.75);
time.advance_by(Duration::ZERO); time.advance_by(Duration::ZERO);
assert_eq!(time.delta(), Duration::ZERO); assert_eq!(time.delta(), Duration::ZERO);
assert_eq!(time.delta_seconds(), 0.0); assert_eq!(time.delta_secs(), 0.0);
assert_eq!(time.delta_seconds_f64(), 0.0); assert_eq!(time.delta_secs_f64(), 0.0);
assert_eq!(time.elapsed(), Duration::from_millis(750)); assert_eq!(time.elapsed(), Duration::from_millis(750));
assert_eq!(time.elapsed_seconds(), 0.75); assert_eq!(time.elapsed_secs(), 0.75);
assert_eq!(time.elapsed_seconds_f64(), 0.75); assert_eq!(time.elapsed_secs_f64(), 0.75);
} }
#[test] #[test]
@ -451,29 +451,29 @@ mod test {
time.advance_to(Duration::from_millis(250)); time.advance_to(Duration::from_millis(250));
assert_eq!(time.delta(), Duration::from_millis(250)); assert_eq!(time.delta(), Duration::from_millis(250));
assert_eq!(time.delta_seconds(), 0.25); assert_eq!(time.delta_secs(), 0.25);
assert_eq!(time.delta_seconds_f64(), 0.25); assert_eq!(time.delta_secs_f64(), 0.25);
assert_eq!(time.elapsed(), Duration::from_millis(250)); assert_eq!(time.elapsed(), Duration::from_millis(250));
assert_eq!(time.elapsed_seconds(), 0.25); assert_eq!(time.elapsed_secs(), 0.25);
assert_eq!(time.elapsed_seconds_f64(), 0.25); assert_eq!(time.elapsed_secs_f64(), 0.25);
time.advance_to(Duration::from_millis(750)); time.advance_to(Duration::from_millis(750));
assert_eq!(time.delta(), Duration::from_millis(500)); assert_eq!(time.delta(), Duration::from_millis(500));
assert_eq!(time.delta_seconds(), 0.5); assert_eq!(time.delta_secs(), 0.5);
assert_eq!(time.delta_seconds_f64(), 0.5); assert_eq!(time.delta_secs_f64(), 0.5);
assert_eq!(time.elapsed(), Duration::from_millis(750)); assert_eq!(time.elapsed(), Duration::from_millis(750));
assert_eq!(time.elapsed_seconds(), 0.75); assert_eq!(time.elapsed_secs(), 0.75);
assert_eq!(time.elapsed_seconds_f64(), 0.75); assert_eq!(time.elapsed_secs_f64(), 0.75);
time.advance_to(Duration::from_millis(750)); time.advance_to(Duration::from_millis(750));
assert_eq!(time.delta(), Duration::ZERO); assert_eq!(time.delta(), Duration::ZERO);
assert_eq!(time.delta_seconds(), 0.0); assert_eq!(time.delta_secs(), 0.0);
assert_eq!(time.delta_seconds_f64(), 0.0); assert_eq!(time.delta_secs_f64(), 0.0);
assert_eq!(time.elapsed(), Duration::from_millis(750)); assert_eq!(time.elapsed(), Duration::from_millis(750));
assert_eq!(time.elapsed_seconds(), 0.75); assert_eq!(time.elapsed_secs(), 0.75);
assert_eq!(time.elapsed_seconds_f64(), 0.75); assert_eq!(time.elapsed_secs_f64(), 0.75);
} }
#[test] #[test]
@ -494,26 +494,26 @@ mod test {
time.advance_by(Duration::from_secs(2)); time.advance_by(Duration::from_secs(2));
assert_eq!(time.elapsed_wrapped(), Duration::from_secs(2)); assert_eq!(time.elapsed_wrapped(), Duration::from_secs(2));
assert_eq!(time.elapsed_seconds_wrapped(), 2.0); assert_eq!(time.elapsed_secs_wrapped(), 2.0);
assert_eq!(time.elapsed_seconds_wrapped_f64(), 2.0); assert_eq!(time.elapsed_secs_wrapped_f64(), 2.0);
time.advance_by(Duration::from_secs(2)); time.advance_by(Duration::from_secs(2));
assert_eq!(time.elapsed_wrapped(), Duration::from_secs(1)); assert_eq!(time.elapsed_wrapped(), Duration::from_secs(1));
assert_eq!(time.elapsed_seconds_wrapped(), 1.0); assert_eq!(time.elapsed_secs_wrapped(), 1.0);
assert_eq!(time.elapsed_seconds_wrapped_f64(), 1.0); assert_eq!(time.elapsed_secs_wrapped_f64(), 1.0);
time.advance_by(Duration::from_secs(2)); time.advance_by(Duration::from_secs(2));
assert_eq!(time.elapsed_wrapped(), Duration::ZERO); assert_eq!(time.elapsed_wrapped(), Duration::ZERO);
assert_eq!(time.elapsed_seconds_wrapped(), 0.0); assert_eq!(time.elapsed_secs_wrapped(), 0.0);
assert_eq!(time.elapsed_seconds_wrapped_f64(), 0.0); assert_eq!(time.elapsed_secs_wrapped_f64(), 0.0);
time.advance_by(Duration::new(3, 250_000_000)); time.advance_by(Duration::new(3, 250_000_000));
assert_eq!(time.elapsed_wrapped(), Duration::from_millis(250)); assert_eq!(time.elapsed_wrapped(), Duration::from_millis(250));
assert_eq!(time.elapsed_seconds_wrapped(), 0.25); assert_eq!(time.elapsed_secs_wrapped(), 0.25);
assert_eq!(time.elapsed_seconds_wrapped_f64(), 0.25); assert_eq!(time.elapsed_secs_wrapped_f64(), 0.25);
} }
#[test] #[test]
@ -524,14 +524,14 @@ mod test {
time.advance_by(Duration::from_secs(8)); time.advance_by(Duration::from_secs(8));
assert_eq!(time.elapsed_wrapped(), Duration::from_secs(3)); assert_eq!(time.elapsed_wrapped(), Duration::from_secs(3));
assert_eq!(time.elapsed_seconds_wrapped(), 3.0); assert_eq!(time.elapsed_secs_wrapped(), 3.0);
assert_eq!(time.elapsed_seconds_wrapped_f64(), 3.0); assert_eq!(time.elapsed_secs_wrapped_f64(), 3.0);
time.set_wrap_period(Duration::from_secs(2)); time.set_wrap_period(Duration::from_secs(2));
assert_eq!(time.elapsed_wrapped(), Duration::from_secs(3)); assert_eq!(time.elapsed_wrapped(), Duration::from_secs(3));
assert_eq!(time.elapsed_seconds_wrapped(), 3.0); assert_eq!(time.elapsed_secs_wrapped(), 3.0);
assert_eq!(time.elapsed_seconds_wrapped_f64(), 3.0); assert_eq!(time.elapsed_secs_wrapped_f64(), 3.0);
time.advance_by(Duration::ZERO); time.advance_by(Duration::ZERO);
@ -539,7 +539,7 @@ mod test {
// is left in `elapsed_wrapped()`. This test of values is here to ensure // is left in `elapsed_wrapped()`. This test of values is here to ensure
// that we notice if we change that behaviour. // that we notice if we change that behaviour.
assert_eq!(time.elapsed_wrapped(), Duration::from_secs(0)); assert_eq!(time.elapsed_wrapped(), Duration::from_secs(0));
assert_eq!(time.elapsed_seconds_wrapped(), 0.0); assert_eq!(time.elapsed_secs_wrapped(), 0.0);
assert_eq!(time.elapsed_seconds_wrapped_f64(), 0.0); assert_eq!(time.elapsed_secs_wrapped_f64(), 0.0);
} }
} }

View file

@ -120,6 +120,13 @@ impl Timer {
self.stopwatch.elapsed_secs() self.stopwatch.elapsed_secs()
} }
/// Returns the time elapsed on the timer as an `f64`.
/// See also [`Timer::elapsed`](Timer::elapsed).
#[inline]
pub fn elapsed_secs_f64(&self) -> f64 {
self.stopwatch.elapsed_secs_f64()
}
/// Sets the elapsed time of the timer without any other considerations. /// Sets the elapsed time of the timer without any other considerations.
/// ///
/// See also [`Stopwatch::set`](Stopwatch::set). /// See also [`Stopwatch::set`](Stopwatch::set).
@ -299,7 +306,7 @@ impl Timer {
/// Returns `true` if the timer is paused. /// Returns `true` if the timer is paused.
/// ///
/// See also [`Stopwatch::paused`](Stopwatch::paused). /// See also [`Stopwatch::is_paused`](Stopwatch::is_paused).
/// ///
/// # Examples /// # Examples
/// ``` /// ```
@ -313,7 +320,7 @@ impl Timer {
/// ``` /// ```
#[inline] #[inline]
pub fn paused(&self) -> bool { pub fn paused(&self) -> bool {
self.stopwatch.paused() self.stopwatch.is_paused()
} }
/// Resets the timer. The reset doesn't affect the `paused` state of the timer. /// Resets the timer. The reset doesn't affect the `paused` state of the timer.
@ -450,6 +457,7 @@ mod tests {
// Tick once, check all attributes // Tick once, check all attributes
t.tick(Duration::from_secs_f32(0.25)); t.tick(Duration::from_secs_f32(0.25));
assert_eq!(t.elapsed_secs(), 0.25); assert_eq!(t.elapsed_secs(), 0.25);
assert_eq!(t.elapsed_secs_f64(), 0.25);
assert_eq!(t.duration(), Duration::from_secs_f32(10.0)); assert_eq!(t.duration(), Duration::from_secs_f32(10.0));
assert!(!t.finished()); assert!(!t.finished());
assert!(!t.just_finished()); assert!(!t.just_finished());
@ -472,6 +480,7 @@ mod tests {
t.unpause(); t.unpause();
t.tick(Duration::from_secs_f32(500.0)); t.tick(Duration::from_secs_f32(500.0));
assert_eq!(t.elapsed_secs(), 10.0); assert_eq!(t.elapsed_secs(), 10.0);
assert_eq!(t.elapsed_secs_f64(), 10.0);
assert!(t.finished()); assert!(t.finished());
assert!(t.just_finished()); assert!(t.just_finished());
assert_eq!(t.times_finished_this_tick(), 1); assert_eq!(t.times_finished_this_tick(), 1);
@ -480,6 +489,7 @@ mod tests {
// Continuing to tick when finished should only change just_finished // Continuing to tick when finished should only change just_finished
t.tick(Duration::from_secs_f32(1.0)); t.tick(Duration::from_secs_f32(1.0));
assert_eq!(t.elapsed_secs(), 10.0); assert_eq!(t.elapsed_secs(), 10.0);
assert_eq!(t.elapsed_secs_f64(), 10.0);
assert!(t.finished()); assert!(t.finished());
assert!(!t.just_finished()); assert!(!t.just_finished());
assert_eq!(t.times_finished_this_tick(), 0); assert_eq!(t.times_finished_this_tick(), 0);
@ -493,6 +503,7 @@ mod tests {
// Tick once, check all attributes // Tick once, check all attributes
t.tick(Duration::from_secs_f32(0.75)); t.tick(Duration::from_secs_f32(0.75));
assert_eq!(t.elapsed_secs(), 0.75); assert_eq!(t.elapsed_secs(), 0.75);
assert_eq!(t.elapsed_secs_f64(), 0.75);
assert_eq!(t.duration(), Duration::from_secs_f32(2.0)); assert_eq!(t.duration(), Duration::from_secs_f32(2.0));
assert!(!t.finished()); assert!(!t.finished());
assert!(!t.just_finished()); assert!(!t.just_finished());
@ -503,6 +514,7 @@ mod tests {
// Tick past the end and make sure elapsed wraps // Tick past the end and make sure elapsed wraps
t.tick(Duration::from_secs_f32(1.5)); t.tick(Duration::from_secs_f32(1.5));
assert_eq!(t.elapsed_secs(), 0.25); assert_eq!(t.elapsed_secs(), 0.25);
assert_eq!(t.elapsed_secs_f64(), 0.25);
assert!(t.finished()); assert!(t.finished());
assert!(t.just_finished()); assert!(t.just_finished());
assert_eq!(t.times_finished_this_tick(), 1); assert_eq!(t.times_finished_this_tick(), 1);
@ -511,6 +523,7 @@ mod tests {
// Continuing to tick should turn off both finished & just_finished for repeating timers // Continuing to tick should turn off both finished & just_finished for repeating timers
t.tick(Duration::from_secs_f32(1.0)); t.tick(Duration::from_secs_f32(1.0));
assert_eq!(t.elapsed_secs(), 1.25); assert_eq!(t.elapsed_secs(), 1.25);
assert_eq!(t.elapsed_secs_f64(), 1.25);
assert!(!t.finished()); assert!(!t.finished());
assert!(!t.just_finished()); assert!(!t.just_finished());
assert_eq!(t.times_finished_this_tick(), 0); assert_eq!(t.times_finished_this_tick(), 0);
@ -525,6 +538,7 @@ mod tests {
t.tick(Duration::from_secs_f32(3.5)); t.tick(Duration::from_secs_f32(3.5));
assert_eq!(t.times_finished_this_tick(), 3); assert_eq!(t.times_finished_this_tick(), 3);
assert_eq!(t.elapsed_secs(), 0.5); assert_eq!(t.elapsed_secs(), 0.5);
assert_eq!(t.elapsed_secs_f64(), 0.5);
assert!(t.finished()); assert!(t.finished());
assert!(t.just_finished()); assert!(t.just_finished());
t.tick(Duration::from_secs_f32(0.2)); t.tick(Duration::from_secs_f32(0.2));

View file

@ -112,7 +112,7 @@ fn update_bloom_settings(
commands.entity(entity).remove::<Bloom>(); commands.entity(entity).remove::<Bloom>();
} }
let dt = time.delta_seconds(); let dt = time.delta_secs();
if keycode.pressed(KeyCode::KeyA) { if keycode.pressed(KeyCode::KeyA) {
bloom.intensity -= dt / 10.0; bloom.intensity -= dt / 10.0;

View file

@ -38,7 +38,7 @@ struct Spin;
fn spin(time: Res<Time>, mut query: Query<&mut Transform, With<Spin>>) { fn spin(time: Res<Time>, mut query: Query<&mut Transform, With<Spin>>) {
for mut transform in query.iter_mut() { for mut transform in query.iter_mut() {
transform.rotation *= Quat::from_rotation_z(time.delta_seconds() / 5.); transform.rotation *= Quat::from_rotation_z(time.delta_secs() / 5.);
} }
} }
@ -279,11 +279,8 @@ fn draw_ray(gizmos: &mut Gizmos, ray: &RayCast2d) {
} }
fn get_and_draw_ray(gizmos: &mut Gizmos, time: &Time) -> RayCast2d { fn get_and_draw_ray(gizmos: &mut Gizmos, time: &Time) -> RayCast2d {
let ray = Vec2::new( let ray = Vec2::new(ops::cos(time.elapsed_secs()), ops::sin(time.elapsed_secs()));
ops::cos(time.elapsed_seconds()), let dist = 150. + ops::sin(0.5 * time.elapsed_secs()).abs() * 500.;
ops::sin(time.elapsed_seconds()),
);
let dist = 150. + ops::sin(0.5 * time.elapsed_seconds()).abs() * 500.;
let aabb_ray = Ray2d { let aabb_ray = Ray2d {
origin: ray * 250., origin: ray * 250.,
@ -375,8 +372,8 @@ fn bounding_circle_cast_system(
} }
fn get_intersection_position(time: &Time) -> Vec2 { fn get_intersection_position(time: &Time) -> Vec2 {
let x = ops::cos(0.8 * time.elapsed_seconds()) * 250.; let x = ops::cos(0.8 * time.elapsed_secs()) * 250.;
let y = ops::sin(0.4 * time.elapsed_seconds()) * 100.; let y = ops::sin(0.4 * time.elapsed_secs()) * 100.;
Vec2::new(x, y) Vec2::new(x, y)
} }

View file

@ -30,8 +30,8 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
fn sprite_movement(time: Res<Time>, mut sprite_position: Query<(&mut Direction, &mut Transform)>) { fn sprite_movement(time: Res<Time>, mut sprite_position: Query<(&mut Direction, &mut Transform)>) {
for (mut logo, mut transform) in &mut sprite_position { for (mut logo, mut transform) in &mut sprite_position {
match *logo { match *logo {
Direction::Up => transform.translation.y += 150. * time.delta_seconds(), Direction::Up => transform.translation.y += 150. * time.delta_secs(),
Direction::Down => transform.translation.y -= 150. * time.delta_seconds(), Direction::Down => transform.translation.y -= 150. * time.delta_secs(),
} }
if transform.translation.y > 200. { if transform.translation.y > 200. {

View file

@ -136,7 +136,7 @@ fn setup_camera(mut commands: Commands, mut images: ResMut<Assets<Image>>) {
/// Rotates entities to demonstrate grid snapping. /// Rotates entities to demonstrate grid snapping.
fn rotate(time: Res<Time>, mut transforms: Query<&mut Transform, With<Rotate>>) { fn rotate(time: Res<Time>, mut transforms: Query<&mut Transform, With<Rotate>>) {
for mut transform in &mut transforms { for mut transform in &mut transforms {
let dt = time.delta_seconds(); let dt = time.delta_secs();
transform.rotate_z(dt); transform.rotate_z(dt);
} }
} }

View file

@ -122,14 +122,14 @@ fn player_movement_system(
} }
// update the ship rotation around the Z axis (perpendicular to the 2D plane of the screen) // update the ship rotation around the Z axis (perpendicular to the 2D plane of the screen)
transform.rotate_z(rotation_factor * ship.rotation_speed * time.delta_seconds()); transform.rotate_z(rotation_factor * ship.rotation_speed * time.delta_secs());
// get the ship's forward vector by applying the current rotation to the ships initial facing // get the ship's forward vector by applying the current rotation to the ships initial facing
// vector // vector
let movement_direction = transform.rotation * Vec3::Y; let movement_direction = transform.rotation * Vec3::Y;
// get the distance the ship will move based on direction, the ship's movement speed and delta // get the distance the ship will move based on direction, the ship's movement speed and delta
// time // time
let movement_distance = movement_factor * ship.movement_speed * time.delta_seconds(); let movement_distance = movement_factor * ship.movement_speed * time.delta_secs();
// create the change in translation using the new movement direction and distance // create the change in translation using the new movement direction and distance
let translation_delta = movement_direction * movement_distance; let translation_delta = movement_direction * movement_distance;
// update the ship translation with our new translation delta // update the ship translation with our new translation delta
@ -228,7 +228,7 @@ fn rotate_to_player_system(
// calculate angle of rotation with limit // calculate angle of rotation with limit
let rotation_angle = let rotation_angle =
rotation_sign * (config.rotation_speed * time.delta_seconds()).min(max_angle); rotation_sign * (config.rotation_speed * time.delta_secs()).min(max_angle);
// rotate the enemy to face the player // rotate the enemy to face the player
enemy_transform.rotate_z(rotation_angle); enemy_transform.rotate_z(rotation_angle);

View file

@ -40,7 +40,7 @@ fn animate(mut sprites: Query<&mut Sprite>, mut state: ResMut<AnimationState>, t
if state.current >= state.max || state.current <= state.min { if state.current >= state.max || state.current <= state.min {
state.speed = -state.speed; state.speed = -state.speed;
}; };
state.current += state.speed * time.delta_seconds(); state.current += state.speed * time.delta_secs();
for mut sprite in &mut sprites { for mut sprite in &mut sprites {
sprite.custom_size = Some(Vec2::splat(state.current)); sprite.custom_size = Some(Vec2::splat(state.current));
} }

View file

@ -139,8 +139,8 @@ fn animate_translation(
mut query: Query<&mut Transform, (With<Text2d>, With<AnimateTranslation>)>, mut query: Query<&mut Transform, (With<Text2d>, With<AnimateTranslation>)>,
) { ) {
for mut transform in &mut query { for mut transform in &mut query {
transform.translation.x = 100.0 * ops::sin(time.elapsed_seconds()) - 400.0; transform.translation.x = 100.0 * ops::sin(time.elapsed_secs()) - 400.0;
transform.translation.y = 100.0 * ops::cos(time.elapsed_seconds()); transform.translation.y = 100.0 * ops::cos(time.elapsed_secs());
} }
} }
@ -149,7 +149,7 @@ fn animate_rotation(
mut query: Query<&mut Transform, (With<Text2d>, With<AnimateRotation>)>, mut query: Query<&mut Transform, (With<Text2d>, With<AnimateRotation>)>,
) { ) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotation = Quat::from_rotation_z(ops::cos(time.elapsed_seconds())); transform.rotation = Quat::from_rotation_z(ops::cos(time.elapsed_secs()));
} }
} }
@ -160,7 +160,7 @@ fn animate_scale(
// Consider changing font-size instead of scaling the transform. Scaling a Text2D will scale the // Consider changing font-size instead of scaling the transform. Scaling a Text2D will scale the
// rendered quad, resulting in a pixellated look. // rendered quad, resulting in a pixellated look.
for mut transform in &mut query { for mut transform in &mut query {
let scale = (ops::sin(time.elapsed_seconds()) + 1.1) * 2.0; let scale = (ops::sin(time.elapsed_secs()) + 1.1) * 2.0;
transform.scale.x = scale; transform.scale.x = scale;
transform.scale.y = scale; transform.scale.y = scale;
} }

View file

@ -146,7 +146,7 @@ fn setup(
fn rotate(mut query: Query<&mut Transform, With<Shape>>, time: Res<Time>) { fn rotate(mut query: Query<&mut Transform, With<Shape>>, time: Res<Time>) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_y(time.delta_seconds() / 2.); transform.rotate_y(time.delta_secs() / 2.);
} }
} }

View file

@ -52,7 +52,7 @@ fn animate_materials(
for material_handle in material_handles.iter() { for material_handle in material_handles.iter() {
if let Some(material) = materials.get_mut(material_handle) { if let Some(material) = materials.get_mut(material_handle) {
if let Color::Hsla(ref mut hsla) = material.base_color { if let Color::Hsla(ref mut hsla) = material.base_color {
*hsla = hsla.rotate_hue(time.delta_seconds() * 100.0); *hsla = hsla.rotate_hue(time.delta_secs() * 100.0);
} }
} }
} }

View file

@ -128,7 +128,7 @@ fn animate_light(
mut lights: Query<&mut Transform, Or<(With<DirectionalLight>, With<PointLight>)>>, mut lights: Query<&mut Transform, Or<(With<DirectionalLight>, With<PointLight>)>>,
time: Res<Time>, time: Res<Time>,
) { ) {
let now = time.elapsed_seconds(); let now = time.elapsed_secs();
for mut transform in lights.iter_mut() { for mut transform in lights.iter_mut() {
transform.translation = vec3(ops::cos(now), 1.0, ops::sin(now)) * vec3(3.0, 4.0, 3.0); transform.translation = vec3(ops::cos(now), 1.0, ops::sin(now)) * vec3(3.0, 4.0, 3.0);
transform.look_at(Vec3::ZERO, Vec3::Y); transform.look_at(Vec3::ZERO, Vec3::Y);

View file

@ -171,9 +171,9 @@ fn example_control_system(
let (mut camera_transform, mut auto_exposure) = camera.into_inner(); let (mut camera_transform, mut auto_exposure) = camera.into_inner();
let rotation = if input.pressed(KeyCode::ArrowLeft) { let rotation = if input.pressed(KeyCode::ArrowLeft) {
time.delta_seconds() time.delta_secs()
} else if input.pressed(KeyCode::ArrowRight) { } else if input.pressed(KeyCode::ArrowRight) {
-time.delta_seconds() -time.delta_secs()
} else { } else {
0.0 0.0
}; };

View file

@ -263,9 +263,9 @@ fn example_control_system(
input: Res<ButtonInput<KeyCode>>, input: Res<ButtonInput<KeyCode>>,
) { ) {
if input.pressed(KeyCode::ArrowUp) { if input.pressed(KeyCode::ArrowUp) {
state.alpha = (state.alpha + time.delta_seconds()).min(1.0); state.alpha = (state.alpha + time.delta_secs()).min(1.0);
} else if input.pressed(KeyCode::ArrowDown) { } else if input.pressed(KeyCode::ArrowDown) {
state.alpha = (state.alpha - time.delta_seconds()).max(0.0); state.alpha = (state.alpha - time.delta_secs()).max(0.0);
} }
if input.just_pressed(KeyCode::Space) { if input.just_pressed(KeyCode::Space) {
@ -301,9 +301,9 @@ fn example_control_system(
} }
let rotation = if input.pressed(KeyCode::ArrowLeft) { let rotation = if input.pressed(KeyCode::ArrowLeft) {
time.delta_seconds() time.delta_secs()
} else if input.pressed(KeyCode::ArrowRight) { } else if input.pressed(KeyCode::ArrowRight) {
-time.delta_seconds() -time.delta_secs()
} else { } else {
0.0 0.0
}; };

View file

@ -139,7 +139,7 @@ fn update_bloom_settings(
commands.entity(entity).remove::<Bloom>(); commands.entity(entity).remove::<Bloom>();
} }
let dt = time.delta_seconds(); let dt = time.delta_secs();
if keycode.pressed(KeyCode::KeyA) { if keycode.pressed(KeyCode::KeyA) {
bloom.intensity -= dt / 10.0; bloom.intensity -= dt / 10.0;
@ -214,6 +214,6 @@ struct Bouncing;
fn bounce_spheres(time: Res<Time>, mut query: Query<&mut Transform, With<Bouncing>>) { fn bounce_spheres(time: Res<Time>, mut query: Query<&mut Transform, With<Bouncing>>) {
for mut transform in query.iter_mut() { for mut transform in query.iter_mut() {
transform.translation.y = transform.translation.y =
ops::sin(transform.translation.x + transform.translation.z + time.elapsed_seconds()); ops::sin(transform.translation.x + transform.translation.z + time.elapsed_secs());
} }
} }

View file

@ -237,7 +237,7 @@ fn move_camera_view(
) { ) {
for mut camera in movable_camera_query.iter_mut() { for mut camera in movable_camera_query.iter_mut() {
if let Some(sub_view) = &mut camera.sub_camera_view { if let Some(sub_view) = &mut camera.sub_camera_view {
sub_view.offset.x = (time.elapsed_seconds() * 150.) % 450.0 - 50.0; sub_view.offset.x = (time.elapsed_secs() * 150.) % 450.0 - 50.0;
sub_view.offset.y = sub_view.offset.x; sub_view.offset.y = sub_view.offset.x;
} }
} }

View file

@ -233,7 +233,7 @@ fn animate_light(
mut lights: Query<&mut Transform, Or<(With<PointLight>, With<DirectionalLight>)>>, mut lights: Query<&mut Transform, Or<(With<PointLight>, With<DirectionalLight>)>>,
time: Res<Time>, time: Res<Time>,
) { ) {
let now = time.elapsed_seconds(); let now = time.elapsed_secs();
for mut transform in lights.iter_mut() { for mut transform in lights.iter_mut() {
transform.translation = vec3( transform.translation = vec3(
ops::sin(now * 1.4), ops::sin(now * 1.4),
@ -246,7 +246,7 @@ fn animate_light(
/// Rotates the spheres. /// Rotates the spheres.
fn animate_spheres(mut spheres: Query<&mut Transform, With<ExampleSphere>>, time: Res<Time>) { fn animate_spheres(mut spheres: Query<&mut Transform, With<ExampleSphere>>, time: Res<Time>) {
let now = time.elapsed_seconds(); let now = time.elapsed_secs();
for mut transform in spheres.iter_mut() { for mut transform in spheres.iter_mut() {
transform.rotation = Quat::from_rotation_y(SPHERE_ROTATION_SPEED * now); transform.rotation = Quat::from_rotation_y(SPHERE_ROTATION_SPEED * now);
} }

View file

@ -211,7 +211,7 @@ fn animate_light_direction(
return; return;
} }
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_y(time.delta_seconds() * PI / 5.0); transform.rotate_y(time.delta_secs() * PI / 5.0);
} }
} }
@ -266,9 +266,9 @@ fn spin(time: Res<Time>, mut query: Query<(&mut Transform, &Spin)>, pause: Res<P
return; return;
} }
for (mut transform, spin) in query.iter_mut() { for (mut transform, spin) in query.iter_mut() {
transform.rotate_local_y(spin.speed * time.delta_seconds()); transform.rotate_local_y(spin.speed * time.delta_secs());
transform.rotate_local_x(spin.speed * time.delta_seconds()); transform.rotate_local_x(spin.speed * time.delta_secs());
transform.rotate_local_z(-spin.speed * time.delta_seconds()); transform.rotate_local_z(-spin.speed * time.delta_secs());
} }
} }

View file

@ -133,8 +133,8 @@ fn update_system(
time: Res<Time>, time: Res<Time>,
keycode: Res<ButtonInput<KeyCode>>, keycode: Res<ButtonInput<KeyCode>>,
) { ) {
let now = time.elapsed_seconds(); let now = time.elapsed_secs();
let delta = time.delta_seconds(); let delta = time.delta_secs();
let (mut fog, mut transform) = camera.into_inner(); let (mut fog, mut transform) = camera.into_inner();

View file

@ -84,17 +84,17 @@ fn input_handler(
} }
if keyboard_input.pressed(KeyCode::KeyX) { if keyboard_input.pressed(KeyCode::KeyX) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_x(time.delta_seconds() / 1.2); transform.rotate_x(time.delta_secs() / 1.2);
} }
} }
if keyboard_input.pressed(KeyCode::KeyY) { if keyboard_input.pressed(KeyCode::KeyY) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_y(time.delta_seconds() / 1.2); transform.rotate_y(time.delta_secs() / 1.2);
} }
} }
if keyboard_input.pressed(KeyCode::KeyZ) { if keyboard_input.pressed(KeyCode::KeyZ) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_z(time.delta_seconds() / 1.2); transform.rotate_z(time.delta_secs() / 1.2);
} }
} }
if keyboard_input.pressed(KeyCode::KeyR) { if keyboard_input.pressed(KeyCode::KeyR) {

View file

@ -355,7 +355,7 @@ fn rotate_camera(
} }
for mut transform in camera_query.iter_mut() { for mut transform in camera_query.iter_mut() {
transform.translation = Vec2::from_angle(ROTATION_SPEED * time.delta_seconds()) transform.translation = Vec2::from_angle(ROTATION_SPEED * time.delta_secs())
.rotate(transform.translation.xz()) .rotate(transform.translation.xz())
.extend(transform.translation.y) .extend(transform.translation.y)
.xzy(); .xzy();

View file

@ -293,7 +293,7 @@ fn animate_light_direction(
mut query: Query<&mut Transform, With<DirectionalLight>>, mut query: Query<&mut Transform, With<DirectionalLight>>,
) { ) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_y(time.delta_seconds() * 0.5); transform.rotate_y(time.delta_secs() * 0.5);
} }
} }
@ -317,6 +317,6 @@ fn movement(
direction.x += 1.0; direction.x += 1.0;
} }
transform.translation += time.delta_seconds() * 2.0 * direction; transform.translation += time.delta_secs() * 2.0 * direction;
} }
} }

View file

@ -56,7 +56,7 @@ fn animate_light_direction(
transform.rotation = Quat::from_euler( transform.rotation = Quat::from_euler(
EulerRot::ZYX, EulerRot::ZYX,
0.0, 0.0,
time.elapsed_seconds() * PI / 5.0, time.elapsed_secs() * PI / 5.0,
-FRAC_PI_4, -FRAC_PI_4,
); );
} }

View file

@ -31,7 +31,7 @@ fn bouncing_raycast(
ray_map: Res<RayMap>, ray_map: Res<RayMap>,
) { ) {
// Cast an automatically moving ray and bounce it off of surfaces // Cast an automatically moving ray and bounce it off of surfaces
let t = ops::cos((time.elapsed_seconds() - 4.0).max(0.0) * LASER_SPEED) * PI; let t = ops::cos((time.elapsed_secs() - 4.0).max(0.0) * LASER_SPEED) * PI;
let ray_pos = Vec3::new(ops::sin(t), ops::cos(3.0 * t) * 0.5, ops::cos(t)) * 0.5; let ray_pos = Vec3::new(ops::sin(t), ops::cos(3.0 * t) * 0.5, ops::cos(t)) * 0.5;
let ray_dir = Dir3::new(-ray_pos).unwrap(); let ray_dir = Dir3::new(-ray_pos).unwrap();
let ray = Ray3d::new(ray_pos, ray_dir); let ray = Ray3d::new(ray_pos, ray_dir);

View file

@ -300,7 +300,7 @@ fn move_cars(
mut spins: Query<&mut Transform, (Without<Moves>, With<Rotates>)>, mut spins: Query<&mut Transform, (Without<Moves>, With<Rotates>)>,
) { ) {
for (mut transform, moves, children) in &mut movables { for (mut transform, moves, children) in &mut movables {
let time = time.elapsed_seconds() * 0.25; let time = time.elapsed_secs() * 0.25;
let t = time + 0.5 * moves.0; let t = time + 0.5 * moves.0;
let dx = ops::cos(t); let dx = ops::cos(t);
let dz = -ops::sin(3.0 * t); let dz = -ops::sin(3.0 * t);

View file

@ -152,9 +152,9 @@ fn update_parallax_layers(
fn spin(time: Res<Time>, mut query: Query<(&mut Transform, &Spin)>) { fn spin(time: Res<Time>, mut query: Query<(&mut Transform, &Spin)>) {
for (mut transform, spin) in query.iter_mut() { for (mut transform, spin) in query.iter_mut() {
transform.rotate_local_y(spin.speed * time.delta_seconds()); transform.rotate_local_y(spin.speed * time.delta_secs());
transform.rotate_local_x(spin.speed * time.delta_seconds()); transform.rotate_local_x(spin.speed * time.delta_secs());
transform.rotate_local_z(-spin.speed * time.delta_seconds()); transform.rotate_local_z(-spin.speed * time.delta_secs());
} }
} }

View file

@ -18,7 +18,7 @@ struct Rotator;
/// rotates the parent, which will result in the child also rotating /// rotates the parent, which will result in the child also rotating
fn rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<Rotator>>) { fn rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<Rotator>>) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_x(3.0 * time.delta_seconds()); transform.rotate_x(3.0 * time.delta_secs());
} }
} }

View file

@ -34,7 +34,7 @@ fn find_top_material_and_mesh(
if name.0 == "Top" { if name.0 == "Top" {
if let Some(material) = materials.get_mut(mat_handle) { if let Some(material) = materials.get_mut(mat_handle) {
if let Color::Hsla(ref mut hsla) = material.base_color { if let Color::Hsla(ref mut hsla) = material.base_color {
*hsla = hsla.rotate_hue(time.delta_seconds() * 100.0); *hsla = hsla.rotate_hue(time.delta_secs() * 100.0);
} else { } else {
material.base_color = Color::from(Hsla::hsl(0.0, 0.8, 0.5)); material.base_color = Color::from(Hsla::hsl(0.0, 0.8, 0.5));
} }
@ -45,7 +45,7 @@ fn find_top_material_and_mesh(
mesh.attribute_mut(Mesh::ATTRIBUTE_POSITION) mesh.attribute_mut(Mesh::ATTRIBUTE_POSITION)
{ {
positions[0] = ( positions[0] = (
ops::sin(2.0 * PI * time.elapsed_seconds()), ops::sin(2.0 * PI * time.elapsed_secs()),
positions[0][1], positions[0][1],
positions[0][2], positions[0][2],
) )

View file

@ -303,7 +303,7 @@ fn rotate_camera(
} }
for mut transform in camera_query.iter_mut() { for mut transform in camera_query.iter_mut() {
transform.translation = Vec2::from_angle(time.delta_seconds() * PI / 5.0) transform.translation = Vec2::from_angle(time.delta_secs() * PI / 5.0)
.rotate(transform.translation.xz()) .rotate(transform.translation.xz())
.extend(transform.translation.y) .extend(transform.translation.y)
.xzy(); .xzy();

View file

@ -123,15 +123,15 @@ fn setup(
/// Rotates the inner cube (first pass) /// Rotates the inner cube (first pass)
fn rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<FirstPassCube>>) { fn rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<FirstPassCube>>) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_x(1.5 * time.delta_seconds()); transform.rotate_x(1.5 * time.delta_secs());
transform.rotate_z(1.3 * time.delta_seconds()); transform.rotate_z(1.3 * time.delta_secs());
} }
} }
/// Rotates the outer cube (main pass) /// Rotates the outer cube (main pass)
fn cube_rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<MainPassCube>>) { fn cube_rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<MainPassCube>>) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_x(1.0 * time.delta_seconds()); transform.rotate_x(1.0 * time.delta_secs());
transform.rotate_y(0.7 * time.delta_seconds()); transform.rotate_y(0.7 * time.delta_secs());
} }
} }

View file

@ -36,7 +36,7 @@ fn rotate_skybox_and_environment_map(
mut environments: Query<(&mut Skybox, &mut EnvironmentMapLight)>, mut environments: Query<(&mut Skybox, &mut EnvironmentMapLight)>,
time: Res<Time>, time: Res<Time>,
) { ) {
let now = time.elapsed_seconds(); let now = time.elapsed_secs();
let rotation = Quat::from_rotation_y(0.2 * now); let rotation = Quat::from_rotation_y(0.2 * now);
for (mut skybox, mut environment_map) in environments.iter_mut() { for (mut skybox, mut environment_map) in environments.iter_mut() {
skybox.rotation = rotation; skybox.rotation = rotation;

View file

@ -125,6 +125,6 @@ fn setup(
/// Moves fog density texture offset every frame. /// Moves fog density texture offset every frame.
fn scroll_fog(time: Res<Time>, mut query: Query<&mut FogVolume>) { fn scroll_fog(time: Res<Time>, mut query: Query<&mut FogVolume>) {
for mut fog_volume in query.iter_mut() { for mut fog_volume in query.iter_mut() {
fog_volume.density_texture_offset += Vec3::new(0.0, 0.0, 0.04) * time.delta_seconds(); fog_volume.density_texture_offset += Vec3::new(0.0, 0.0, 0.04) * time.delta_secs();
} }
} }

View file

@ -104,7 +104,7 @@ fn cycle_cubemap_asset(
asset_server: Res<AssetServer>, asset_server: Res<AssetServer>,
render_device: Res<RenderDevice>, render_device: Res<RenderDevice>,
) { ) {
let now = time.elapsed_seconds(); let now = time.elapsed_secs();
if *next_swap == 0.0 { if *next_swap == 0.0 {
*next_swap = now + CUBEMAP_SWAP_DELAY; *next_swap = now + CUBEMAP_SWAP_DELAY;
return; return;
@ -171,6 +171,6 @@ fn animate_light_direction(
mut query: Query<&mut Transform, With<DirectionalLight>>, mut query: Query<&mut Transform, With<DirectionalLight>>,
) { ) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_y(time.delta_seconds() * 0.5); transform.rotate_y(time.delta_secs() * 0.5);
} }
} }

View file

@ -141,11 +141,11 @@ fn light_sway(time: Res<Time>, mut query: Query<(&mut Transform, &mut SpotLight)
for (mut transform, mut angles) in query.iter_mut() { for (mut transform, mut angles) in query.iter_mut() {
transform.rotation = Quat::from_euler( transform.rotation = Quat::from_euler(
EulerRot::XYZ, EulerRot::XYZ,
-FRAC_PI_2 + ops::sin(time.elapsed_seconds() * 0.67 * 3.0) * 0.5, -FRAC_PI_2 + ops::sin(time.elapsed_secs() * 0.67 * 3.0) * 0.5,
ops::sin(time.elapsed_seconds() * 3.0) * 0.5, ops::sin(time.elapsed_secs() * 3.0) * 0.5,
0.0, 0.0,
); );
let angle = (ops::sin(time.elapsed_seconds() * 1.2) + 1.0) * (FRAC_PI_4 - 0.1); let angle = (ops::sin(time.elapsed_secs() * 1.2) + 1.0) * (FRAC_PI_4 - 0.1);
angles.inner_angle = angle * 0.8; angles.inner_angle = angle * 0.8;
angles.outer_angle = angle; angles.outer_angle = angle;
} }
@ -180,7 +180,7 @@ fn movement(
translation.y -= 1.0; translation.y -= 1.0;
} }
translation *= 2.0 * time.delta_seconds(); translation *= 2.0 * time.delta_secs();
// Apply translation // Apply translation
for mut transform in &mut query { for mut transform in &mut query {
@ -193,7 +193,7 @@ fn rotation(
input: Res<ButtonInput<KeyCode>>, input: Res<ButtonInput<KeyCode>>,
time: Res<Time>, time: Res<Time>,
) { ) {
let delta = time.delta_seconds(); let delta = time.delta_secs();
if input.pressed(KeyCode::ArrowLeft) { if input.pressed(KeyCode::ArrowLeft) {
transform.rotate_around(Vec3::ZERO, Quat::from_rotation_y(delta)); transform.rotate_around(Vec3::ZERO, Quat::from_rotation_y(delta));

View file

@ -104,7 +104,7 @@ fn update(
keycode: Res<ButtonInput<KeyCode>>, keycode: Res<ButtonInput<KeyCode>>,
time: Res<Time>, time: Res<Time>,
) { ) {
sphere.translation.y = ops::sin(time.elapsed_seconds() / 1.7) * 0.7; sphere.translation.y = ops::sin(time.elapsed_secs() / 1.7) * 0.7;
let (camera_entity, ssao, temporal_jitter) = *camera; let (camera_entity, ssao, temporal_jitter) = *camera;
let current_ssao = ssao.cloned().unwrap_or_default(); let current_ssao = ssao.cloned().unwrap_or_default();

View file

@ -292,7 +292,7 @@ fn rotate_model(
time: Res<Time>, time: Res<Time>,
) { ) {
for mut transform in query.iter_mut() { for mut transform in query.iter_mut() {
transform.rotation = Quat::from_euler(EulerRot::XYZ, 0.0, time.elapsed_seconds(), 0.0); transform.rotation = Quat::from_euler(EulerRot::XYZ, 0.0, time.elapsed_secs(), 0.0);
} }
} }

View file

@ -339,7 +339,7 @@ fn update_color_grading_settings(
mut selected_parameter: ResMut<SelectedParameter>, mut selected_parameter: ResMut<SelectedParameter>,
) { ) {
let color_grading = per_method_settings.settings.get_mut(*tonemapping).unwrap(); let color_grading = per_method_settings.settings.get_mut(*tonemapping).unwrap();
let mut dt = time.delta_seconds() * 0.25; let mut dt = time.delta_secs() * 0.25;
if keys.pressed(KeyCode::ArrowLeft) { if keys.pressed(KeyCode::ArrowLeft) {
dt = -dt; dt = -dt;
} }

View file

@ -402,39 +402,39 @@ fn example_control_system(
input: Res<ButtonInput<KeyCode>>, input: Res<ButtonInput<KeyCode>>,
) { ) {
if input.pressed(KeyCode::Digit2) { if input.pressed(KeyCode::Digit2) {
state.diffuse_transmission = (state.diffuse_transmission + time.delta_seconds()).min(1.0); state.diffuse_transmission = (state.diffuse_transmission + time.delta_secs()).min(1.0);
} else if input.pressed(KeyCode::Digit1) { } else if input.pressed(KeyCode::Digit1) {
state.diffuse_transmission = (state.diffuse_transmission - time.delta_seconds()).max(0.0); state.diffuse_transmission = (state.diffuse_transmission - time.delta_secs()).max(0.0);
} }
if input.pressed(KeyCode::KeyW) { if input.pressed(KeyCode::KeyW) {
state.specular_transmission = (state.specular_transmission + time.delta_seconds()).min(1.0); state.specular_transmission = (state.specular_transmission + time.delta_secs()).min(1.0);
} else if input.pressed(KeyCode::KeyQ) { } else if input.pressed(KeyCode::KeyQ) {
state.specular_transmission = (state.specular_transmission - time.delta_seconds()).max(0.0); state.specular_transmission = (state.specular_transmission - time.delta_secs()).max(0.0);
} }
if input.pressed(KeyCode::KeyS) { if input.pressed(KeyCode::KeyS) {
state.thickness = (state.thickness + time.delta_seconds()).min(5.0); state.thickness = (state.thickness + time.delta_secs()).min(5.0);
} else if input.pressed(KeyCode::KeyA) { } else if input.pressed(KeyCode::KeyA) {
state.thickness = (state.thickness - time.delta_seconds()).max(0.0); state.thickness = (state.thickness - time.delta_secs()).max(0.0);
} }
if input.pressed(KeyCode::KeyX) { if input.pressed(KeyCode::KeyX) {
state.ior = (state.ior + time.delta_seconds()).min(3.0); state.ior = (state.ior + time.delta_secs()).min(3.0);
} else if input.pressed(KeyCode::KeyZ) { } else if input.pressed(KeyCode::KeyZ) {
state.ior = (state.ior - time.delta_seconds()).max(1.0); state.ior = (state.ior - time.delta_secs()).max(1.0);
} }
if input.pressed(KeyCode::KeyI) { if input.pressed(KeyCode::KeyI) {
state.reflectance = (state.reflectance + time.delta_seconds()).min(1.0); state.reflectance = (state.reflectance + time.delta_secs()).min(1.0);
} else if input.pressed(KeyCode::KeyU) { } else if input.pressed(KeyCode::KeyU) {
state.reflectance = (state.reflectance - time.delta_seconds()).max(0.0); state.reflectance = (state.reflectance - time.delta_secs()).max(0.0);
} }
if input.pressed(KeyCode::KeyR) { if input.pressed(KeyCode::KeyR) {
state.perceptual_roughness = (state.perceptual_roughness + time.delta_seconds()).min(1.0); state.perceptual_roughness = (state.perceptual_roughness + time.delta_secs()).min(1.0);
} else if input.pressed(KeyCode::KeyE) { } else if input.pressed(KeyCode::KeyE) {
state.perceptual_roughness = (state.perceptual_roughness - time.delta_seconds()).max(0.0); state.perceptual_roughness = (state.perceptual_roughness - time.delta_secs()).max(0.0);
} }
let randomize_colors = input.just_pressed(KeyCode::KeyC); let randomize_colors = input.just_pressed(KeyCode::KeyC);
@ -522,21 +522,21 @@ fn example_control_system(
let rotation = if input.pressed(KeyCode::ArrowRight) { let rotation = if input.pressed(KeyCode::ArrowRight) {
state.auto_camera = false; state.auto_camera = false;
time.delta_seconds() time.delta_secs()
} else if input.pressed(KeyCode::ArrowLeft) { } else if input.pressed(KeyCode::ArrowLeft) {
state.auto_camera = false; state.auto_camera = false;
-time.delta_seconds() -time.delta_secs()
} else if state.auto_camera { } else if state.auto_camera {
time.delta_seconds() * 0.25 time.delta_secs() * 0.25
} else { } else {
0.0 0.0
}; };
let distance_change = let distance_change =
if input.pressed(KeyCode::ArrowDown) && camera_transform.translation.length() < 25.0 { if input.pressed(KeyCode::ArrowDown) && camera_transform.translation.length() < 25.0 {
time.delta_seconds() time.delta_secs()
} else if input.pressed(KeyCode::ArrowUp) && camera_transform.translation.length() > 2.0 { } else if input.pressed(KeyCode::ArrowUp) && camera_transform.translation.length() > 2.0 {
-time.delta_seconds() -time.delta_secs()
} else { } else {
0.0 0.0
}; };
@ -603,7 +603,7 @@ fn flicker_system(
light: Single<(&mut PointLight, &mut Transform), (With<Flicker>, Without<Mesh3d>)>, light: Single<(&mut PointLight, &mut Transform), (With<Flicker>, Without<Mesh3d>)>,
time: Res<Time>, time: Res<Time>,
) { ) {
let s = time.elapsed_seconds(); let s = time.elapsed_secs();
let a = ops::cos(s * 6.0) * 0.0125 + ops::cos(s * 4.0) * 0.025; let a = ops::cos(s * 6.0) * 0.0125 + ops::cos(s * 4.0) * 0.025;
let b = ops::cos(s * 5.0) * 0.0125 + ops::cos(s * 3.0) * 0.025; let b = ops::cos(s * 5.0) * 0.0125 + ops::cos(s * 3.0) * 0.025;
let c = ops::cos(s * 7.0) * 0.0125 + ops::cos(s * 2.0) * 0.025; let c = ops::cos(s * 7.0) * 0.0125 + ops::cos(s * 2.0) * 0.025;

View file

@ -108,7 +108,7 @@ fn setup(
/// completely opaque, then will be 7/8 opaque (1/8 transparent), then will be /// completely opaque, then will be 7/8 opaque (1/8 transparent), then will be
/// 6/8 opaque, then 5/8, etc. /// 6/8 opaque, then 5/8, etc.
pub fn fade_transparency(time: Res<Time>, mut materials: ResMut<Assets<StandardMaterial>>) { pub fn fade_transparency(time: Res<Time>, mut materials: ResMut<Assets<StandardMaterial>>) {
let alpha = (ops::sin(time.elapsed_seconds()) / 2.0) + 0.5; let alpha = (ops::sin(time.elapsed_secs()) / 2.0) + 0.5;
for (_, material) in materials.iter_mut() { for (_, material) in materials.iter_mut() {
material.base_color.set_alpha(alpha); material.base_color.set_alpha(alpha);
} }

View file

@ -65,9 +65,9 @@ fn move_scene_entities(
for entity in children.iter_descendants(moved_scene_entity) { for entity in children.iter_descendants(moved_scene_entity) {
if let Ok(mut transform) = transforms.get_mut(entity) { if let Ok(mut transform) = transforms.get_mut(entity) {
transform.translation = Vec3::new( transform.translation = Vec3::new(
offset * ops::sin(time.elapsed_seconds()) / 20., offset * ops::sin(time.elapsed_secs()) / 20.,
0., 0.,
ops::cos(time.elapsed_seconds()) / 20., ops::cos(time.elapsed_secs()) / 20.,
); );
offset += 0.5; offset += 0.5;
} }

View file

@ -202,7 +202,7 @@ fn move_point_light(
for (mut transform, mut move_data) in objects.iter_mut() { for (mut transform, mut move_data) in objects.iter_mut() {
let mut translation = transform.translation; let mut translation = transform.translation;
let mut need_toggle = false; let mut need_toggle = false;
translation.x += move_data.speed * timer.delta_seconds(); translation.x += move_data.speed * timer.delta_secs();
if translation.x > move_data.max_x { if translation.x > move_data.max_x {
translation.x = move_data.max_x; translation.x = move_data.max_x;
need_toggle = true; need_toggle = true;

View file

@ -270,12 +270,12 @@ fn simulate_particles(
if particle.lifeteime_timer.tick(time.delta()).just_finished() { if particle.lifeteime_timer.tick(time.delta()).just_finished() {
commands.entity(entity).despawn(); commands.entity(entity).despawn();
} else { } else {
transform.translation += particle.velocity * time.delta_seconds(); transform.translation += particle.velocity * time.delta_secs();
transform.scale = transform.scale =
Vec3::splat(particle.size.lerp(0.0, particle.lifeteime_timer.fraction())); Vec3::splat(particle.size.lerp(0.0, particle.lifeteime_timer.fraction()));
particle particle
.velocity .velocity
.smooth_nudge(&Vec3::ZERO, 4.0, time.delta_seconds()); .smooth_nudge(&Vec3::ZERO, 4.0, time.delta_secs());
} }
} }
} }

View file

@ -111,6 +111,6 @@ fn setup(
fn animate_text_opacity(mut colors: Query<&mut TextColor>, time: Res<Time>) { fn animate_text_opacity(mut colors: Query<&mut TextColor>, time: Res<Time>) {
for mut color in &mut colors { for mut color in &mut colors {
let a = color.0.alpha(); let a = color.0.alpha();
color.0.set_alpha(a - time.delta_seconds()); color.0.set_alpha(a - time.delta_secs());
} }
} }

View file

@ -88,7 +88,7 @@ fn animate_curve<T: CurveColor>(
time: Res<Time>, time: Res<Time>,
mut query: Query<(&mut Transform, &mut Sprite, &Curve<T>)>, mut query: Query<(&mut Transform, &mut Sprite, &Curve<T>)>,
) { ) {
let t = (ops::sin(time.elapsed_seconds()) + 1.) / 2.; let t = (ops::sin(time.elapsed_secs()) + 1.) / 2.;
for (mut transform, mut sprite, cubic_curve) in &mut query { for (mut transform, mut sprite, cubic_curve) in &mut query {
// position takes a point from the curve where 0 is the initial point // position takes a point from the curve where 0 is the initial point
@ -102,7 +102,7 @@ fn animate_mixed<T: MixedColor>(
time: Res<Time>, time: Res<Time>,
mut query: Query<(&mut Transform, &mut Sprite, &Mixed<T>)>, mut query: Query<(&mut Transform, &mut Sprite, &Mixed<T>)>,
) { ) {
let t = (ops::sin(time.elapsed_seconds()) + 1.) / 2.; let t = (ops::sin(time.elapsed_secs()) + 1.) / 2.;
for (mut transform, mut sprite, mixed) in &mut query { for (mut transform, mut sprite, mixed) in &mut query {
sprite.color = { sprite.color = {

View file

@ -194,36 +194,36 @@ fn joint_animation(
match animated_joint.0 { match animated_joint.0 {
-5 => { -5 => {
transform.rotation = transform.rotation =
Quat::from_rotation_x(FRAC_PI_2 * ops::sin(time.elapsed_seconds())); Quat::from_rotation_x(FRAC_PI_2 * ops::sin(time.elapsed_secs()));
} }
-4 => { -4 => {
transform.rotation = transform.rotation =
Quat::from_rotation_y(FRAC_PI_2 * ops::sin(time.elapsed_seconds())); Quat::from_rotation_y(FRAC_PI_2 * ops::sin(time.elapsed_secs()));
} }
-3 => { -3 => {
transform.rotation = transform.rotation =
Quat::from_rotation_z(FRAC_PI_2 * ops::sin(time.elapsed_seconds())); Quat::from_rotation_z(FRAC_PI_2 * ops::sin(time.elapsed_secs()));
} }
-2 => { -2 => {
transform.scale.x = ops::sin(time.elapsed_seconds()) + 1.0; transform.scale.x = ops::sin(time.elapsed_secs()) + 1.0;
} }
-1 => { -1 => {
transform.scale.y = ops::sin(time.elapsed_seconds()) + 1.0; transform.scale.y = ops::sin(time.elapsed_secs()) + 1.0;
} }
0 => { 0 => {
transform.translation.x = 0.5 * ops::sin(time.elapsed_seconds()); transform.translation.x = 0.5 * ops::sin(time.elapsed_secs());
transform.translation.y = ops::cos(time.elapsed_seconds()); transform.translation.y = ops::cos(time.elapsed_secs());
} }
1 => { 1 => {
transform.translation.y = ops::sin(time.elapsed_seconds()); transform.translation.y = ops::sin(time.elapsed_secs());
transform.translation.z = ops::cos(time.elapsed_seconds()); transform.translation.z = ops::cos(time.elapsed_secs());
} }
2 => { 2 => {
transform.translation.x = ops::sin(time.elapsed_seconds()); transform.translation.x = ops::sin(time.elapsed_secs());
} }
3 => { 3 => {
transform.translation.y = ops::sin(time.elapsed_seconds()); transform.translation.y = ops::sin(time.elapsed_secs());
transform.scale.x = ops::sin(time.elapsed_seconds()) + 1.0; transform.scale.x = ops::sin(time.elapsed_secs()) + 1.0;
} }
_ => (), _ => (),
} }

View file

@ -110,7 +110,7 @@ fn display_curves(
let duration = 2.5; let duration = 2.5;
let time_margin = 0.5; let time_margin = 0.5;
let now = ((time.elapsed_seconds() % (duration + time_margin * 2.0) - time_margin) / duration) let now = ((time.elapsed_secs() % (duration + time_margin * 2.0) - time_margin) / duration)
.clamp(0.0, 1.0); .clamp(0.0, 1.0);
ui_text.0 = format!("Progress: {:.2}", now); ui_text.0 = format!("Progress: {:.2}", now);

View file

@ -66,6 +66,6 @@ fn joint_animation(
let mut second_joint_transform = transform_query.get_mut(second_joint_entity).unwrap(); let mut second_joint_transform = transform_query.get_mut(second_joint_entity).unwrap();
second_joint_transform.rotation = second_joint_transform.rotation =
Quat::from_rotation_z(FRAC_PI_2 * ops::sin(time.elapsed_seconds())); Quat::from_rotation_z(FRAC_PI_2 * ops::sin(time.elapsed_secs()));
} }
} }

View file

@ -69,7 +69,7 @@ fn move_text(
time: Res<Time>, time: Res<Time>,
) { ) {
for (entity, mut position) in &mut texts { for (entity, mut position) in &mut texts {
position.translation -= Vec3::new(0.0, 100.0 * time.delta_seconds(), 0.0); position.translation -= Vec3::new(0.0, 100.0 * time.delta_secs(), 0.0);
if position.translation.y < -300.0 { if position.translation.y < -300.0 {
commands.entity(entity).despawn(); commands.entity(entity).despawn();
} }

View file

@ -22,7 +22,7 @@ struct MyMusic;
fn update_speed(music_controller: Query<&AudioSink, With<MyMusic>>, time: Res<Time>) { fn update_speed(music_controller: Query<&AudioSink, With<MyMusic>>, time: Res<Time>) {
if let Ok(sink) = music_controller.get_single() { if let Ok(sink) = music_controller.get_single() {
sink.set_speed((ops::sin(time.elapsed_seconds() / 5.0) + 1.0).max(0.1)); sink.set_speed((ops::sin(time.elapsed_secs() / 5.0) + 1.0).max(0.1));
} }
} }

View file

@ -114,7 +114,7 @@ fn fade_in(
time: Res<Time>, time: Res<Time>,
) { ) {
for (audio, entity) in audio_sink.iter_mut() { for (audio, entity) in audio_sink.iter_mut() {
audio.set_volume(audio.volume() + time.delta_seconds() / FADE_TIME); audio.set_volume(audio.volume() + time.delta_secs() / FADE_TIME);
if audio.volume() >= 1.0 { if audio.volume() >= 1.0 {
audio.set_volume(1.0); audio.set_volume(1.0);
commands.entity(entity).remove::<FadeIn>(); commands.entity(entity).remove::<FadeIn>();
@ -130,7 +130,7 @@ fn fade_out(
time: Res<Time>, time: Res<Time>,
) { ) {
for (audio, entity) in audio_sink.iter_mut() { for (audio, entity) in audio_sink.iter_mut() {
audio.set_volume(audio.volume() - time.delta_seconds() / FADE_TIME); audio.set_volume(audio.volume() - time.delta_secs() / FADE_TIME);
if audio.volume() <= 0.0 { if audio.volume() <= 0.0 {
commands.entity(entity).despawn_recursive(); commands.entity(entity).despawn_recursive();
} }

View file

@ -90,7 +90,7 @@ fn update_emitters(
) { ) {
for (mut emitter_transform, mut emitter) in emitters.iter_mut() { for (mut emitter_transform, mut emitter) in emitters.iter_mut() {
if keyboard.just_pressed(KeyCode::Space) { if keyboard.just_pressed(KeyCode::Space) {
if emitter.stopwatch.paused() { if emitter.stopwatch.is_paused() {
emitter.stopwatch.unpause(); emitter.stopwatch.unpause();
} else { } else {
emitter.stopwatch.pause(); emitter.stopwatch.pause();
@ -99,7 +99,7 @@ fn update_emitters(
emitter.stopwatch.tick(time.delta()); emitter.stopwatch.tick(time.delta());
if !emitter.stopwatch.paused() { if !emitter.stopwatch.is_paused() {
emitter_transform.translation.x = ops::sin(emitter.stopwatch.elapsed_secs()) * 500.0; emitter_transform.translation.x = ops::sin(emitter.stopwatch.elapsed_secs()) * 500.0;
} }
} }
@ -113,15 +113,15 @@ fn update_listener(
let speed = 200.; let speed = 200.;
if keyboard.pressed(KeyCode::ArrowRight) { if keyboard.pressed(KeyCode::ArrowRight) {
listener.translation.x += speed * time.delta_seconds(); listener.translation.x += speed * time.delta_secs();
} }
if keyboard.pressed(KeyCode::ArrowLeft) { if keyboard.pressed(KeyCode::ArrowLeft) {
listener.translation.x -= speed * time.delta_seconds(); listener.translation.x -= speed * time.delta_secs();
} }
if keyboard.pressed(KeyCode::ArrowUp) { if keyboard.pressed(KeyCode::ArrowUp) {
listener.translation.y += speed * time.delta_seconds(); listener.translation.y += speed * time.delta_secs();
} }
if keyboard.pressed(KeyCode::ArrowDown) { if keyboard.pressed(KeyCode::ArrowDown) {
listener.translation.y -= speed * time.delta_seconds(); listener.translation.y -= speed * time.delta_secs();
} }
} }

View file

@ -92,7 +92,7 @@ fn update_positions(
) { ) {
for (mut emitter_transform, mut emitter) in emitters.iter_mut() { for (mut emitter_transform, mut emitter) in emitters.iter_mut() {
if keyboard.just_pressed(KeyCode::Space) { if keyboard.just_pressed(KeyCode::Space) {
if emitter.stopwatch.paused() { if emitter.stopwatch.is_paused() {
emitter.stopwatch.unpause(); emitter.stopwatch.unpause();
} else { } else {
emitter.stopwatch.pause(); emitter.stopwatch.pause();
@ -101,7 +101,7 @@ fn update_positions(
emitter.stopwatch.tick(time.delta()); emitter.stopwatch.tick(time.delta());
if !emitter.stopwatch.paused() { if !emitter.stopwatch.is_paused() {
emitter_transform.translation.x = ops::sin(emitter.stopwatch.elapsed_secs()) * 3.0; emitter_transform.translation.x = ops::sin(emitter.stopwatch.elapsed_secs()) * 3.0;
emitter_transform.translation.z = ops::cos(emitter.stopwatch.elapsed_secs()) * 3.0; emitter_transform.translation.z = ops::cos(emitter.stopwatch.elapsed_secs()) * 3.0;
} }
@ -116,15 +116,15 @@ fn update_listener(
let speed = 2.; let speed = 2.;
if keyboard.pressed(KeyCode::ArrowRight) { if keyboard.pressed(KeyCode::ArrowRight) {
listeners.translation.x += speed * time.delta_seconds(); listeners.translation.x += speed * time.delta_secs();
} }
if keyboard.pressed(KeyCode::ArrowLeft) { if keyboard.pressed(KeyCode::ArrowLeft) {
listeners.translation.x -= speed * time.delta_seconds(); listeners.translation.x -= speed * time.delta_secs();
} }
if keyboard.pressed(KeyCode::ArrowDown) { if keyboard.pressed(KeyCode::ArrowDown) {
listeners.translation.z += speed * time.delta_seconds(); listeners.translation.z += speed * time.delta_secs();
} }
if keyboard.pressed(KeyCode::ArrowUp) { if keyboard.pressed(KeyCode::ArrowUp) {
listeners.translation.z -= speed * time.delta_seconds(); listeners.translation.z -= speed * time.delta_secs();
} }
} }

View file

@ -127,7 +127,7 @@ fn trigger_shake_on_space(
screen_shake.start_shake( screen_shake.start_shake(
MAX_ANGLE, MAX_ANGLE,
MAX_OFFSET, MAX_OFFSET,
screen_shake_clone.trauma + TRAUMA_INCREMENT * time.delta_seconds(), screen_shake_clone.trauma + TRAUMA_INCREMENT * time.delta_secs(),
Vec2 { x: 0.0, y: 0.0 }, Vec2 { x: 0.0, y: 0.0 },
); // final_position should be your current player position ); // final_position should be your current player position
} }
@ -155,7 +155,7 @@ fn screen_shake(
}; };
sub_view sub_view
.offset .offset
.smooth_nudge(&target, CAMERA_DECAY_RATE, time.delta_seconds()); .smooth_nudge(&target, CAMERA_DECAY_RATE, time.delta_secs());
// Rotation // Rotation
let rotation = Quat::from_rotation_z(angle); let rotation = Quat::from_rotation_z(angle);
@ -170,11 +170,11 @@ fn screen_shake(
let target = screen_shake.latest_position.unwrap(); let target = screen_shake.latest_position.unwrap();
sub_view sub_view
.offset .offset
.smooth_nudge(&target, 1.0, time.delta_seconds()); .smooth_nudge(&target, 1.0, time.delta_secs());
transform.rotation = transform.rotation.interpolate_stable(&Quat::IDENTITY, 0.1); transform.rotation = transform.rotation.interpolate_stable(&Quat::IDENTITY, 0.1);
} }
} }
// Decay the trauma over time // Decay the trauma over time
screen_shake.trauma -= TRAUMA_DECAY_SPEED * time.delta_seconds(); screen_shake.trauma -= TRAUMA_DECAY_SPEED * time.delta_secs();
screen_shake.trauma = screen_shake.trauma.clamp(0.0, 1.0); screen_shake.trauma = screen_shake.trauma.clamp(0.0, 1.0);
} }

View file

@ -92,7 +92,7 @@ fn update_camera(
// between the camera position and the player position on the x and y axes. // between the camera position and the player position on the x and y axes.
camera camera
.translation .translation
.smooth_nudge(&direction, CAMERA_DECAY_RATE, time.delta_seconds()); .smooth_nudge(&direction, CAMERA_DECAY_RATE, time.delta_secs());
} }
/// Update the player position with keyboard inputs. /// Update the player position with keyboard inputs.
@ -130,6 +130,6 @@ fn move_player(
// Progressively update the player's position over time. Normalize the // Progressively update the player's position over time. Normalize the
// direction vector to prevent it from exceeding a magnitude of 1 when // direction vector to prevent it from exceeding a magnitude of 1 when
// moving diagonally. // moving diagonally.
let move_delta = direction.normalize_or_zero() * PLAYER_SPEED * time.delta_seconds(); let move_delta = direction.normalize_or_zero() * PLAYER_SPEED * time.delta_secs();
player.translation += move_delta.extend(0.); player.translation += move_delta.extend(0.);
} }

View file

@ -125,7 +125,7 @@ fn orbit(
let delta_yaw = delta.x * camera_settings.yaw_speed; let delta_yaw = delta.x * camera_settings.yaw_speed;
// Conversely, we DO need to factor in delta time for mouse button inputs. // Conversely, we DO need to factor in delta time for mouse button inputs.
delta_roll *= camera_settings.roll_speed * time.delta_seconds(); delta_roll *= camera_settings.roll_speed * time.delta_secs();
// Obtain the existing pitch, yaw, and roll values from the transform. // Obtain the existing pitch, yaw, and roll values from the transform.
let (yaw, pitch, roll) = camera.rotation.to_euler(EulerRot::YXZ); let (yaw, pitch, roll) = camera.rotation.to_euler(EulerRot::YXZ);

View file

@ -35,7 +35,7 @@ fn setup(mut commands: Commands) {
fn change_component(time: Res<Time>, mut query: Query<(Entity, &mut MyComponent)>) { fn change_component(time: Res<Time>, mut query: Query<(Entity, &mut MyComponent)>) {
for (entity, mut component) in &mut query { for (entity, mut component) in &mut query {
if rand::thread_rng().gen_bool(0.1) { if rand::thread_rng().gen_bool(0.1) {
let new_component = MyComponent(time.elapsed_seconds().round()); let new_component = MyComponent(time.elapsed_secs().round());
info!("New value: {new_component:?} {entity:?}"); info!("New value: {new_component:?} {entity:?}");
// Change detection occurs on mutable dereference, and does not consider whether or not // Change detection occurs on mutable dereference, and does not consider whether or not
// a value is actually equal. To avoid triggering change detection when nothing has // a value is actually equal. To avoid triggering change detection when nothing has
@ -52,7 +52,7 @@ fn change_component(time: Res<Time>, mut query: Query<(Entity, &mut MyComponent)
fn change_component_2(time: Res<Time>, mut query: Query<(Entity, &mut MyComponent)>) { fn change_component_2(time: Res<Time>, mut query: Query<(Entity, &mut MyComponent)>) {
for (entity, mut component) in &mut query { for (entity, mut component) in &mut query {
if rand::thread_rng().gen_bool(0.1) { if rand::thread_rng().gen_bool(0.1) {
let new_component = MyComponent(time.elapsed_seconds().round()); let new_component = MyComponent(time.elapsed_secs().round());
info!("New value: {new_component:?} {entity:?}"); info!("New value: {new_component:?} {entity:?}");
component.set_if_neq(new_component); component.set_if_neq(new_component);
} }
@ -62,7 +62,7 @@ fn change_component_2(time: Res<Time>, mut query: Query<(Entity, &mut MyComponen
/// Change detection concepts for components apply similarly to resources. /// Change detection concepts for components apply similarly to resources.
fn change_resource(time: Res<Time>, mut my_resource: ResMut<MyResource>) { fn change_resource(time: Res<Time>, mut my_resource: ResMut<MyResource>) {
if rand::thread_rng().gen_bool(0.1) { if rand::thread_rng().gen_bool(0.1) {
let new_resource = MyResource(time.elapsed_seconds().round()); let new_resource = MyResource(time.elapsed_secs().round());
info!("New value: {new_resource:?}"); info!("New value: {new_resource:?}");
my_resource.set_if_neq(new_resource); my_resource.set_if_neq(new_resource);
} }

View file

@ -116,7 +116,7 @@ fn user_input(
// Only runs if there are enemies. // Only runs if there are enemies.
fn move_targets(mut enemies: Populated<(&mut Transform, &mut Enemy)>, time: Res<Time>) { fn move_targets(mut enemies: Populated<(&mut Transform, &mut Enemy)>, time: Res<Time>) {
for (mut transform, mut target) in &mut *enemies { for (mut transform, mut target) in &mut *enemies {
target.rotation += target.rotation_speed * time.delta_seconds(); target.rotation += target.rotation_speed * time.delta_secs();
transform.rotation = Quat::from_rotation_z(target.rotation); transform.rotation = Quat::from_rotation_z(target.rotation);
let offset = transform.right() * target.radius; let offset = transform.right() * target.radius;
transform.translation = target.origin.extend(0.0) + offset; transform.translation = target.origin.extend(0.0) + offset;
@ -145,12 +145,12 @@ fn move_pointer(
player_transform.rotation = Quat::from_mat3(&Mat3::from_cols(side, front, up)); player_transform.rotation = Quat::from_mat3(&Mat3::from_cols(side, front, up));
let max_step = distance - player.min_follow_radius; let max_step = distance - player.min_follow_radius;
if 0.0 < max_step { if 0.0 < max_step {
let velocity = (player.speed * time.delta_seconds()).min(max_step); let velocity = (player.speed * time.delta_secs()).min(max_step);
player_transform.translation += front * velocity; player_transform.translation += front * velocity;
} }
} else { } else {
// No enemy found, keep searching. // No enemy found, keep searching.
player_transform.rotate_axis(Dir3::Z, player.rotation_speed * time.delta_seconds()); player_transform.rotate_axis(Dir3::Z, player.rotation_speed * time.delta_secs());
} }
} }

View file

@ -18,23 +18,23 @@ fn frame_update(mut last_time: Local<f32>, time: Res<Time>) {
// Default `Time` is `Time<Virtual>` here // Default `Time` is `Time<Virtual>` here
info!( info!(
"time since last frame_update: {}", "time since last frame_update: {}",
time.elapsed_seconds() - *last_time time.elapsed_secs() - *last_time
); );
*last_time = time.elapsed_seconds(); *last_time = time.elapsed_secs();
} }
fn fixed_update(mut last_time: Local<f32>, time: Res<Time>, fixed_time: Res<Time<Fixed>>) { fn fixed_update(mut last_time: Local<f32>, time: Res<Time>, fixed_time: Res<Time<Fixed>>) {
// Default `Time`is `Time<Fixed>` here // Default `Time`is `Time<Fixed>` here
info!( info!(
"time since last fixed_update: {}\n", "time since last fixed_update: {}\n",
time.elapsed_seconds() - *last_time time.elapsed_secs() - *last_time
); );
info!("fixed timestep: {}\n", time.delta_seconds()); info!("fixed timestep: {}\n", time.delta_secs());
// If we want to see the overstep, we need to access `Time<Fixed>` specifically // If we want to see the overstep, we need to access `Time<Fixed>` specifically
info!( info!(
"time accrued toward next fixed_update: {}\n", "time accrued toward next fixed_update: {}\n",
fixed_time.overstep().as_secs_f32() fixed_time.overstep().as_secs_f32()
); );
*last_time = time.elapsed_seconds(); *last_time = time.elapsed_secs();
} }

View file

@ -63,24 +63,24 @@ fn rotate(
) { ) {
for (parent, children) in &mut parents_query { for (parent, children) in &mut parents_query {
if let Ok(mut transform) = transform_query.get_mut(parent) { if let Ok(mut transform) = transform_query.get_mut(parent) {
transform.rotate_z(-PI / 2. * time.delta_seconds()); transform.rotate_z(-PI / 2. * time.delta_secs());
} }
// To iterate through the entities children, just treat the Children component as a Vec // To iterate through the entities children, just treat the Children component as a Vec
// Alternatively, you could query entities that have a Parent component // Alternatively, you could query entities that have a Parent component
for child in children { for child in children {
if let Ok(mut transform) = transform_query.get_mut(*child) { if let Ok(mut transform) = transform_query.get_mut(*child) {
transform.rotate_z(PI * time.delta_seconds()); transform.rotate_z(PI * time.delta_secs());
} }
} }
// To demonstrate removing children, we'll remove a child after a couple of seconds. // To demonstrate removing children, we'll remove a child after a couple of seconds.
if time.elapsed_seconds() >= 2.0 && children.len() == 2 { if time.elapsed_secs() >= 2.0 && children.len() == 2 {
let child = children.last().unwrap(); let child = children.last().unwrap();
commands.entity(*child).despawn_recursive(); commands.entity(*child).despawn_recursive();
} }
if time.elapsed_seconds() >= 4.0 { if time.elapsed_secs() >= 4.0 {
// This will remove the entity from its parent's list of children, as well as despawn // This will remove the entity from its parent's list of children, as well as despawn
// any children the entity has. // any children the entity has.
commands.entity(parent).despawn_recursive(); commands.entity(parent).despawn_recursive();

View file

@ -135,7 +135,7 @@ fn interact_bodies(mut query: Query<(&Mass, &GlobalTransform, &mut Acceleration)
} }
fn integrate(time: Res<Time>, mut query: Query<(&mut Acceleration, &mut Transform, &mut LastPos)>) { fn integrate(time: Res<Time>, mut query: Query<(&mut Acceleration, &mut Transform, &mut LastPos)>) {
let dt_sq = time.delta_seconds() * time.delta_seconds(); let dt_sq = time.delta_secs() * time.delta_secs();
for (mut acceleration, mut transform, mut last_pos) in &mut query { for (mut acceleration, mut transform, mut last_pos) in &mut query {
// verlet integration // verlet integration
// x(t+dt) = 2x(t) - x(t-dt) + a(t)dt^2 + O(dt^4) // x(t+dt) = 2x(t) - x(t-dt) + a(t)dt^2 + O(dt^4)

View file

@ -41,7 +41,7 @@ fn remove_component(
query: Query<Entity, With<MyComponent>>, query: Query<Entity, With<MyComponent>>,
) { ) {
// After two seconds have passed the `Component` is removed. // After two seconds have passed the `Component` is removed.
if time.elapsed_seconds() > 2.0 { if time.elapsed_secs() > 2.0 {
if let Some(entity) = query.iter().next() { if let Some(entity) = query.iter().next() {
commands.entity(entity).remove::<MyComponent>(); commands.entity(entity).remove::<MyComponent>();
} }

View file

@ -82,7 +82,7 @@ fn has_user_input(
fn time_passed(t: f32) -> impl FnMut(Local<f32>, Res<Time>) -> bool { fn time_passed(t: f32) -> impl FnMut(Local<f32>, Res<Time>) -> bool {
move |mut timer: Local<f32>, time: Res<Time>| { move |mut timer: Local<f32>, time: Res<Time>| {
// Tick the timer // Tick the timer
*timer += time.delta_seconds(); *timer += time.delta_secs();
// Return true if the timer has passed the time // Return true if the timer has passed the time
*timer >= t *timer >= t
} }

View file

@ -299,7 +299,7 @@ fn focus_camera(
// smooth out the camera movement using the frame time // smooth out the camera movement using the frame time
let mut camera_motion = game.camera_should_focus - game.camera_is_focus; let mut camera_motion = game.camera_should_focus - game.camera_is_focus;
if camera_motion.length() > 0.2 { if camera_motion.length() > 0.2 {
camera_motion *= SPEED * time.delta_seconds(); camera_motion *= SPEED * time.delta_secs();
// set the new camera's actual focus // set the new camera's actual focus
game.camera_is_focus += camera_motion; game.camera_is_focus += camera_motion;
} }
@ -368,10 +368,9 @@ fn spawn_bonus(
fn rotate_bonus(game: Res<Game>, time: Res<Time>, mut transforms: Query<&mut Transform>) { fn rotate_bonus(game: Res<Game>, time: Res<Time>, mut transforms: Query<&mut Transform>) {
if let Some(entity) = game.bonus.entity { if let Some(entity) = game.bonus.entity {
if let Ok(mut cake_transform) = transforms.get_mut(entity) { if let Ok(mut cake_transform) = transforms.get_mut(entity) {
cake_transform.rotate_y(time.delta_seconds()); cake_transform.rotate_y(time.delta_secs());
cake_transform.scale = Vec3::splat( cake_transform.scale =
1.0 + (game.score as f32 / 10.0 * ops::sin(time.elapsed_seconds())).abs(), Vec3::splat(1.0 + (game.score as f32 / 10.0 * ops::sin(time.elapsed_secs())).abs());
);
} }
} }
} }

View file

@ -316,7 +316,7 @@ fn move_paddle(
// Calculate the new horizontal paddle position based on player input // Calculate the new horizontal paddle position based on player input
let new_paddle_position = let new_paddle_position =
paddle_transform.translation.x + direction * PADDLE_SPEED * time.delta_seconds(); paddle_transform.translation.x + direction * PADDLE_SPEED * time.delta_secs();
// Update the paddle position, // Update the paddle position,
// making sure it doesn't cause the paddle to leave the arena // making sure it doesn't cause the paddle to leave the arena
@ -328,8 +328,8 @@ fn move_paddle(
fn apply_velocity(mut query: Query<(&mut Transform, &Velocity)>, time: Res<Time>) { fn apply_velocity(mut query: Query<(&mut Transform, &Velocity)>, time: Res<Time>) {
for (mut transform, velocity) in &mut query { for (mut transform, velocity) in &mut query {
transform.translation.x += velocity.x * time.delta_seconds(); transform.translation.x += velocity.x * time.delta_secs();
transform.translation.y += velocity.y * time.delta_seconds(); transform.translation.y += velocity.y * time.delta_secs();
} }
} }

View file

@ -238,7 +238,7 @@ fn deselect(sprite: &mut Sprite, contributor: &Contributor, transform: &mut Tran
/// Applies gravity to all entities with a velocity. /// Applies gravity to all entities with a velocity.
fn gravity(time: Res<Time>, mut velocity_query: Query<&mut Velocity>) { fn gravity(time: Res<Time>, mut velocity_query: Query<&mut Velocity>) {
let delta = time.delta_seconds(); let delta = time.delta_secs();
for mut velocity in &mut velocity_query { for mut velocity in &mut velocity_query {
velocity.translation.y -= GRAVITY * delta; velocity.translation.y -= GRAVITY * delta;
@ -298,7 +298,7 @@ fn collisions(
/// Apply velocity to positions and rotations. /// Apply velocity to positions and rotations.
fn movement(time: Res<Time>, mut query: Query<(&Velocity, &mut Transform)>) { fn movement(time: Res<Time>, mut query: Query<(&Velocity, &mut Transform)>) {
let delta = time.delta_seconds(); let delta = time.delta_secs();
for (velocity, mut transform) in &mut query { for (velocity, mut transform) in &mut query {
transform.translation += delta * velocity.translation; transform.translation += delta * velocity.translation;

View file

@ -285,7 +285,7 @@ fn drag(
// Calculate how fast we are dragging the Bevy logo (unit/second) // Calculate how fast we are dragging the Bevy logo (unit/second)
let drag_velocity = let drag_velocity =
(new_translation - bevy_transform.translation.truncate()) / time.delta_seconds(); (new_translation - bevy_transform.translation.truncate()) / time.delta_secs();
// Update the translation of Bevy logo transform to new translation // Update the translation of Bevy logo transform to new translation
bevy_transform.translation = new_translation.extend(bevy_transform.translation.z); bevy_transform.translation = new_translation.extend(bevy_transform.translation.z);
@ -366,9 +366,9 @@ fn move_pupils(time: Res<Time>, mut q_pupils: Query<(&mut Pupil, &mut Transform)
// Truncate the Z component to make the calculations be on [`Vec2`] // Truncate the Z component to make the calculations be on [`Vec2`]
let mut translation = transform.translation.truncate(); let mut translation = transform.translation.truncate();
// Decay the pupil velocity // Decay the pupil velocity
pupil.velocity *= ops::powf(0.04f32, time.delta_seconds()); pupil.velocity *= ops::powf(0.04f32, time.delta_secs());
// Move the pupil // Move the pupil
translation += pupil.velocity * time.delta_seconds(); translation += pupil.velocity * time.delta_secs();
// If the pupil hit the outside border of the eye, limit the translation to be within the wiggle radius and invert the velocity. // If the pupil hit the outside border of the eye, limit the translation to be within the wiggle radius and invert the velocity.
// This is not physically accurate but it's good enough for the googly eyes effect. // This is not physically accurate but it's good enough for the googly eyes effect.
if translation.length() > wiggle_radius { if translation.length() > wiggle_radius {

View file

@ -42,7 +42,7 @@ fn draw_example_collection(
mut my_gizmos: Gizmos<MyRoundGizmos>, mut my_gizmos: Gizmos<MyRoundGizmos>,
time: Res<Time>, time: Res<Time>,
) { ) {
let sin_t_scaled = ops::sin(time.elapsed_seconds()) * 50.; let sin_t_scaled = ops::sin(time.elapsed_secs()) * 50.;
gizmos.line_2d(Vec2::Y * -sin_t_scaled, Vec2::splat(-80.), RED); gizmos.line_2d(Vec2::Y * -sin_t_scaled, Vec2::splat(-80.), RED);
gizmos.ray_2d(Vec2::Y * sin_t_scaled, Vec2::splat(80.), LIME); gizmos.ray_2d(Vec2::Y * sin_t_scaled, Vec2::splat(80.), LIME);
@ -70,7 +70,7 @@ fn draw_example_collection(
let domain = Interval::EVERYWHERE; let domain = Interval::EVERYWHERE;
let curve = function_curve(domain, |t| Vec2::new(t, ops::sin(t / 25.0) * 100.0)); let curve = function_curve(domain, |t| Vec2::new(t, ops::sin(t / 25.0) * 100.0));
let resolution = ((ops::sin(time.elapsed_seconds()) + 1.0) * 50.0) as usize; let resolution = ((ops::sin(time.elapsed_secs()) + 1.0) * 50.0) as usize;
let times_and_colors = (0..=resolution) let times_and_colors = (0..=resolution)
.map(|n| n as f32 / resolution as f32) .map(|n| n as f32 / resolution as f32)
.map(|t| (t - 0.5) * 600.0) .map(|t| (t - 0.5) * 600.0)
@ -79,7 +79,7 @@ fn draw_example_collection(
my_gizmos my_gizmos
.rounded_rect_2d(Isometry2d::IDENTITY, Vec2::splat(630.), BLACK) .rounded_rect_2d(Isometry2d::IDENTITY, Vec2::splat(630.), BLACK)
.corner_radius(ops::cos(time.elapsed_seconds() / 3.) * 100.); .corner_radius(ops::cos(time.elapsed_secs() / 3.) * 100.);
// Circles have 32 line-segments by default. // Circles have 32 line-segments by default.
// You may want to increase this for larger circles. // You may want to increase this for larger circles.
@ -88,7 +88,7 @@ fn draw_example_collection(
.resolution(64); .resolution(64);
my_gizmos.ellipse_2d( my_gizmos.ellipse_2d(
Rot2::radians(time.elapsed_seconds() % TAU), Rot2::radians(time.elapsed_secs() % TAU),
Vec2::new(100., 200.), Vec2::new(100., 200.),
YELLOW_GREEN, YELLOW_GREEN,
); );
@ -129,11 +129,11 @@ fn update_config(
) { ) {
let (config, _) = config_store.config_mut::<DefaultGizmoConfigGroup>(); let (config, _) = config_store.config_mut::<DefaultGizmoConfigGroup>();
if keyboard.pressed(KeyCode::ArrowRight) { if keyboard.pressed(KeyCode::ArrowRight) {
config.line_width += 5. * time.delta_seconds(); config.line_width += 5. * time.delta_secs();
config.line_width = config.line_width.clamp(0., 50.); config.line_width = config.line_width.clamp(0., 50.);
} }
if keyboard.pressed(KeyCode::ArrowLeft) { if keyboard.pressed(KeyCode::ArrowLeft) {
config.line_width -= 5. * time.delta_seconds(); config.line_width -= 5. * time.delta_secs();
config.line_width = config.line_width.clamp(0., 50.); config.line_width = config.line_width.clamp(0., 50.);
} }
if keyboard.just_pressed(KeyCode::Digit1) { if keyboard.just_pressed(KeyCode::Digit1) {
@ -156,11 +156,11 @@ fn update_config(
let (my_config, _) = config_store.config_mut::<MyRoundGizmos>(); let (my_config, _) = config_store.config_mut::<MyRoundGizmos>();
if keyboard.pressed(KeyCode::ArrowUp) { if keyboard.pressed(KeyCode::ArrowUp) {
my_config.line_width += 5. * time.delta_seconds(); my_config.line_width += 5. * time.delta_secs();
my_config.line_width = my_config.line_width.clamp(0., 50.); my_config.line_width = my_config.line_width.clamp(0., 50.);
} }
if keyboard.pressed(KeyCode::ArrowDown) { if keyboard.pressed(KeyCode::ArrowDown) {
my_config.line_width -= 5. * time.delta_seconds(); my_config.line_width -= 5. * time.delta_secs();
my_config.line_width = my_config.line_width.clamp(0., 50.); my_config.line_width = my_config.line_width.clamp(0., 50.);
} }
if keyboard.just_pressed(KeyCode::Digit2) { if keyboard.just_pressed(KeyCode::Digit2) {

View file

@ -98,8 +98,8 @@ fn draw_example_collection(
half_size: Vec2::splat(1.0), half_size: Vec2::splat(1.0),
}, },
Isometry3d::new( Isometry3d::new(
Vec3::splat(4.0) + Vec2::from(ops::sin_cos(time.elapsed_seconds())).extend(0.0), Vec3::splat(4.0) + Vec2::from(ops::sin_cos(time.elapsed_secs())).extend(0.0),
Quat::from_rotation_x(PI / 2. + time.elapsed_seconds()), Quat::from_rotation_x(PI / 2. + time.elapsed_secs()),
), ),
GREEN, GREEN,
) )
@ -112,7 +112,7 @@ fn draw_example_collection(
); );
gizmos.rect( gizmos.rect(
Isometry3d::new( Isometry3d::new(
Vec3::new(ops::cos(time.elapsed_seconds()) * 2.5, 1., 0.), Vec3::new(ops::cos(time.elapsed_secs()) * 2.5, 1., 0.),
Quat::from_rotation_y(PI / 2.), Quat::from_rotation_y(PI / 2.),
), ),
Vec2::splat(2.), Vec2::splat(2.),
@ -125,7 +125,7 @@ fn draw_example_collection(
let curve = function_curve(domain, |t| { let curve = function_curve(domain, |t| {
(Vec2::from(ops::sin_cos(t * 10.0))).extend(t - 6.0) (Vec2::from(ops::sin_cos(t * 10.0))).extend(t - 6.0)
}); });
let resolution = ((ops::sin(time.elapsed_seconds()) + 1.0) * 100.0) as usize; let resolution = ((ops::sin(time.elapsed_secs()) + 1.0) * 100.0) as usize;
let times_and_colors = (0..=resolution) let times_and_colors = (0..=resolution)
.map(|n| n as f32 / resolution as f32) .map(|n| n as f32 / resolution as f32)
.map(|t| t * 5.0) .map(|t| t * 5.0)
@ -142,7 +142,7 @@ fn draw_example_collection(
for y in [0., 0.5, 1.] { for y in [0., 0.5, 1.] {
gizmos.ray( gizmos.ray(
Vec3::new(1., y, 0.), Vec3::new(1., y, 0.),
Vec3::new(-3., ops::sin(time.elapsed_seconds() * 3.), 0.), Vec3::new(-3., ops::sin(time.elapsed_secs() * 3.), 0.),
BLUE, BLUE,
); );
} }
@ -200,11 +200,11 @@ fn update_config(
let (config, _) = config_store.config_mut::<DefaultGizmoConfigGroup>(); let (config, _) = config_store.config_mut::<DefaultGizmoConfigGroup>();
if keyboard.pressed(KeyCode::ArrowRight) { if keyboard.pressed(KeyCode::ArrowRight) {
config.line_width += 5. * time.delta_seconds(); config.line_width += 5. * time.delta_secs();
config.line_width = config.line_width.clamp(0., 50.); config.line_width = config.line_width.clamp(0., 50.);
} }
if keyboard.pressed(KeyCode::ArrowLeft) { if keyboard.pressed(KeyCode::ArrowLeft) {
config.line_width -= 5. * time.delta_seconds(); config.line_width -= 5. * time.delta_secs();
config.line_width = config.line_width.clamp(0., 50.); config.line_width = config.line_width.clamp(0., 50.);
} }
if keyboard.just_pressed(KeyCode::Digit1) { if keyboard.just_pressed(KeyCode::Digit1) {
@ -227,11 +227,11 @@ fn update_config(
let (my_config, _) = config_store.config_mut::<MyRoundGizmos>(); let (my_config, _) = config_store.config_mut::<MyRoundGizmos>();
if keyboard.pressed(KeyCode::ArrowUp) { if keyboard.pressed(KeyCode::ArrowUp) {
my_config.line_width += 5. * time.delta_seconds(); my_config.line_width += 5. * time.delta_secs();
my_config.line_width = my_config.line_width.clamp(0., 50.); my_config.line_width = my_config.line_width.clamp(0., 50.);
} }
if keyboard.pressed(KeyCode::ArrowDown) { if keyboard.pressed(KeyCode::ArrowDown) {
my_config.line_width -= 5. * time.delta_seconds(); my_config.line_width -= 5. * time.delta_secs();
my_config.line_width = my_config.line_width.clamp(0., 50.); my_config.line_width = my_config.line_width.clamp(0., 50.);
} }
if keyboard.just_pressed(KeyCode::Digit2) { if keyboard.just_pressed(KeyCode::Digit2) {

View file

@ -117,7 +117,7 @@ fn move_cubes(
); );
if tracking.progress < TRANSITION_DURATION { if tracking.progress < TRANSITION_DURATION {
tracking.progress += time.delta_seconds(); tracking.progress += time.delta_secs();
} else { } else {
tracking.initial_transform = *transform; tracking.initial_transform = *transform;
tracking.target_transform = random_transform(&mut rng.0); tracking.target_transform = random_transform(&mut rng.0);

View file

@ -137,7 +137,7 @@ fn setup(
} }
fn rotate_camera(mut transform: Single<&mut Transform, With<Camera>>, time: Res<Time>) { fn rotate_camera(mut transform: Single<&mut Transform, With<Camera>>, time: Res<Time>) {
transform.rotate_around(Vec3::ZERO, Quat::from_rotation_y(time.delta_seconds() / 2.)); transform.rotate_around(Vec3::ZERO, Quat::from_rotation_y(time.delta_secs() / 2.));
} }
fn update_config( fn update_config(
@ -155,11 +155,11 @@ fn update_config(
let (config, light_config) = config_store.config_mut::<LightGizmoConfigGroup>(); let (config, light_config) = config_store.config_mut::<LightGizmoConfigGroup>();
if keyboard.pressed(KeyCode::ArrowRight) { if keyboard.pressed(KeyCode::ArrowRight) {
config.line_width += 5. * time.delta_seconds(); config.line_width += 5. * time.delta_secs();
config.line_width = config.line_width.clamp(0., 50.); config.line_width = config.line_width.clamp(0., 50.);
} }
if keyboard.pressed(KeyCode::ArrowLeft) { if keyboard.pressed(KeyCode::ArrowLeft) {
config.line_width -= 5. * time.delta_seconds(); config.line_width -= 5. * time.delta_secs();
config.line_width = config.line_width.clamp(0., 50.); config.line_width = config.line_width.clamp(0., 50.);
} }
if keyboard.just_pressed(KeyCode::KeyA) { if keyboard.just_pressed(KeyCode::KeyA) {

View file

@ -111,7 +111,7 @@ fn run_camera_controller(
mut mouse_cursor_grab: Local<bool>, mut mouse_cursor_grab: Local<bool>,
mut query: Query<(&mut Transform, &mut CameraController), With<Camera>>, mut query: Query<(&mut Transform, &mut CameraController), With<Camera>>,
) { ) {
let dt = time.delta_seconds(); let dt = time.delta_secs();
if let Ok((mut transform, mut controller)) = query.get_single_mut() { if let Ok((mut transform, mut controller)) = query.get_single_mut() {
if !controller.initialized { if !controller.initialized {

View file

@ -100,7 +100,7 @@ fn bubbling_text(
if bubble.timer.tick(time.delta()).just_finished() { if bubble.timer.tick(time.delta()).just_finished() {
commands.entity(entity).despawn(); commands.entity(entity).despawn();
} }
transform.translation.y += time.delta_seconds() * 100.0; transform.translation.y += time.delta_secs() * 100.0;
} }
} }

View file

@ -168,7 +168,7 @@ fn setup(
// Rotate the 2D shapes. // Rotate the 2D shapes.
fn rotate_2d_shapes(mut shapes: Query<&mut Transform, With<Shape2d>>, time: Res<Time>) { fn rotate_2d_shapes(mut shapes: Query<&mut Transform, With<Shape2d>>, time: Res<Time>) {
let elapsed_seconds = time.elapsed_seconds(); let elapsed_seconds = time.elapsed_secs();
for mut transform in shapes.iter_mut() { for mut transform in shapes.iter_mut() {
transform.rotation = Quat::from_rotation_z(elapsed_seconds); transform.rotation = Quat::from_rotation_z(elapsed_seconds);
@ -207,7 +207,7 @@ fn bounding_shapes_2d(
// Rotate the 3D shapes. // Rotate the 3D shapes.
fn rotate_3d_shapes(mut shapes: Query<&mut Transform, With<Shape3d>>, time: Res<Time>) { fn rotate_3d_shapes(mut shapes: Query<&mut Transform, With<Shape3d>>, time: Res<Time>) {
let delta_seconds = time.delta_seconds(); let delta_seconds = time.delta_secs();
for mut transform in shapes.iter_mut() { for mut transform in shapes.iter_mut() {
transform.rotate_y(delta_seconds); transform.rotate_y(delta_seconds);

View file

@ -440,7 +440,7 @@ fn in_mode(active: CameraActive) -> impl Fn(Res<State<CameraActive>>) -> bool {
fn draw_gizmos_2d(mut gizmos: Gizmos, state: Res<State<PrimitiveSelected>>, time: Res<Time>) { fn draw_gizmos_2d(mut gizmos: Gizmos, state: Res<State<PrimitiveSelected>>, time: Res<Time>) {
const POSITION: Vec2 = Vec2::new(-LEFT_RIGHT_OFFSET_2D, 0.0); const POSITION: Vec2 = Vec2::new(-LEFT_RIGHT_OFFSET_2D, 0.0);
let angle = time.elapsed_seconds(); let angle = time.elapsed_secs();
let isometry = Isometry2d::new(POSITION, Rot2::radians(angle)); let isometry = Isometry2d::new(POSITION, Rot2::radians(angle));
let color = Color::WHITE; let color = Color::WHITE;
@ -605,7 +605,7 @@ fn rotate_primitive_2d_meshes(
>, >,
time: Res<Time>, time: Res<Time>,
) { ) {
let rotation_2d = Quat::from_mat3(&Mat3::from_angle(time.elapsed_seconds())); let rotation_2d = Quat::from_mat3(&Mat3::from_angle(time.elapsed_secs()));
primitives_2d primitives_2d
.iter_mut() .iter_mut()
.filter(|(_, vis)| vis.get()) .filter(|(_, vis)| vis.get())
@ -624,9 +624,9 @@ fn rotate_primitive_3d_meshes(
let rotation_3d = Quat::from_rotation_arc( let rotation_3d = Quat::from_rotation_arc(
Vec3::Z, Vec3::Z,
Vec3::new( Vec3::new(
ops::sin(time.elapsed_seconds()), ops::sin(time.elapsed_secs()),
ops::cos(time.elapsed_seconds()), ops::cos(time.elapsed_secs()),
ops::sin(time.elapsed_seconds()) * 0.5, ops::sin(time.elapsed_secs()) * 0.5,
) )
.try_normalize() .try_normalize()
.unwrap_or(Vec3::Z), .unwrap_or(Vec3::Z),
@ -644,9 +644,9 @@ fn draw_gizmos_3d(mut gizmos: Gizmos, state: Res<State<PrimitiveSelected>>, time
let rotation = Quat::from_rotation_arc( let rotation = Quat::from_rotation_arc(
Vec3::Z, Vec3::Z,
Vec3::new( Vec3::new(
ops::sin(time.elapsed_seconds()), ops::sin(time.elapsed_secs()),
ops::cos(time.elapsed_seconds()), ops::cos(time.elapsed_secs()),
ops::sin(time.elapsed_seconds()) * 0.5, ops::sin(time.elapsed_secs()) * 0.5,
) )
.try_normalize() .try_normalize()
.unwrap_or(Vec3::Z), .unwrap_or(Vec3::Z),

View file

@ -638,7 +638,7 @@ fn animate_spawning(
time: Res<Time>, time: Res<Time>,
mut samples: Query<(Entity, &mut Transform, &mut SpawningPoint)>, mut samples: Query<(Entity, &mut Transform, &mut SpawningPoint)>,
) { ) {
let dt = time.delta_seconds(); let dt = time.delta_secs();
for (entity, mut transform, mut point) in samples.iter_mut() { for (entity, mut transform, mut point) in samples.iter_mut() {
point.progress += dt / ANIMATION_TIME; point.progress += dt / ANIMATION_TIME;
@ -654,7 +654,7 @@ fn animate_despawning(
time: Res<Time>, time: Res<Time>,
mut samples: Query<(Entity, &mut Transform, &mut DespawningPoint)>, mut samples: Query<(Entity, &mut Transform, &mut DespawningPoint)>,
) { ) {
let dt = time.delta_seconds(); let dt = time.delta_secs();
for (entity, mut transform, mut point) in samples.iter_mut() { for (entity, mut transform, mut point) in samples.iter_mut() {
point.progress += dt / ANIMATION_TIME; point.progress += dt / ANIMATION_TIME;

View file

@ -19,7 +19,7 @@
//! //!
//! The more sophisticated way is to update the player's position based on the time that has passed: //! The more sophisticated way is to update the player's position based on the time that has passed:
//! ```no_run //! ```no_run
//! transform.translation += velocity * time.delta_seconds(); //! transform.translation += velocity * time.delta_secs();
//! ``` //! ```
//! This way, velocity represents a speed in units per second, and the player will move at the same speed //! This way, velocity represents a speed in units per second, and the player will move at the same speed
//! regardless of the frame rate. //! regardless of the frame rate.
@ -217,7 +217,7 @@ fn advance_physics(
) in query.iter_mut() ) in query.iter_mut()
{ {
previous_physical_translation.0 = current_physical_translation.0; previous_physical_translation.0 = current_physical_translation.0;
current_physical_translation.0 += velocity.0 * fixed_time.delta_seconds(); current_physical_translation.0 += velocity.0 * fixed_time.delta_secs();
// Reset the input accumulator, as we are currently consuming all input that happened since the last fixed timestep. // Reset the input accumulator, as we are currently consuming all input that happened since the last fixed timestep.
input.0 = Vec2::ZERO; input.0 = Vec2::ZERO;

View file

@ -100,7 +100,7 @@ fn move_target(
// The target and the present position of the target sphere are far enough to have a well- // The target and the present position of the target sphere are far enough to have a well-
// defined direction between them, so let's move closer: // defined direction between them, so let's move closer:
Ok(dir) => { Ok(dir) => {
let delta_time = time.delta_seconds(); let delta_time = time.delta_secs();
let abs_delta = (target_pos.0 - target.translation).norm(); let abs_delta = (target_pos.0 - target.translation).norm();
// Avoid overshooting in case of high values of `delta_time`: // Avoid overshooting in case of high values of `delta_time`:
@ -123,7 +123,7 @@ fn move_follower(
time: Res<Time>, time: Res<Time>,
) { ) {
let decay_rate = decay_rate.0; let decay_rate = decay_rate.0;
let delta_time = time.delta_seconds(); let delta_time = time.delta_secs();
// Calling `smooth_nudge` is what moves the following sphere smoothly toward the target. // Calling `smooth_nudge` is what moves the following sphere smoothly toward the target.
following following

View file

@ -232,6 +232,6 @@ fn on_mesh_hover(
/// Rotates the shapes. /// Rotates the shapes.
fn rotate(mut query: Query<&mut Transform, With<Shape>>, time: Res<Time>) { fn rotate(mut query: Query<&mut Transform, With<Shape>>, time: Res<Time>) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_y(time.delta_seconds() / 2.); transform.rotate_y(time.delta_secs() / 2.);
} }
} }

View file

@ -16,7 +16,7 @@ fn move_sprite(
time: Res<Time>, time: Res<Time>,
mut sprite: Query<&mut Transform, (Without<Sprite>, With<Children>)>, mut sprite: Query<&mut Transform, (Without<Sprite>, With<Children>)>,
) { ) {
let t = time.elapsed_seconds() * 0.1; let t = time.elapsed_secs() * 0.1;
for mut transform in &mut sprite { for mut transform in &mut sprite {
let new = Vec2 { let new = Vec2 {
x: 50.0 * ops::sin(t), x: 50.0 * ops::sin(t),

View file

@ -58,7 +58,7 @@ fn setup(
fn move_cube(mut query: Query<&mut Transform, With<Cube>>, time: Res<Time>) { fn move_cube(mut query: Query<&mut Transform, With<Cube>>, time: Res<Time>) {
for mut transform in &mut query { for mut transform in &mut query {
transform.translation.y = -cos(time.elapsed_seconds()) + 1.5; transform.translation.y = -cos(time.elapsed_secs()) + 1.5;
} }
} }

View file

@ -348,15 +348,15 @@ struct Rotates;
/// Rotates any entity around the x and y axis /// Rotates any entity around the x and y axis
fn rotate(time: Res<Time>, mut query: Query<&mut Transform, With<Rotates>>) { fn rotate(time: Res<Time>, mut query: Query<&mut Transform, With<Rotates>>) {
for mut transform in &mut query { for mut transform in &mut query {
transform.rotate_x(0.55 * time.delta_seconds()); transform.rotate_x(0.55 * time.delta_secs());
transform.rotate_z(0.15 * time.delta_seconds()); transform.rotate_z(0.15 * time.delta_secs());
} }
} }
// Change the intensity over time to show that the effect is controlled from the main world // Change the intensity over time to show that the effect is controlled from the main world
fn update_settings(mut settings: Query<&mut PostProcessSettings>, time: Res<Time>) { fn update_settings(mut settings: Query<&mut PostProcessSettings>, time: Res<Time>) {
for mut setting in &mut settings { for mut setting in &mut settings {
let mut intensity = ops::sin(time.elapsed_seconds()); let mut intensity = ops::sin(time.elapsed_secs());
// Make it loop periodically // Make it loop periodically
intensity = ops::sin(intensity); intensity = ops::sin(intensity);
// Remap it to 0..1 because the intensity can't be negative // Remap it to 0..1 because the intensity can't be negative

View file

@ -65,7 +65,7 @@ struct Rotate;
fn rotate_things(mut q: Query<&mut Transform, With<Rotate>>, time: Res<Time>) { fn rotate_things(mut q: Query<&mut Transform, With<Rotate>>, time: Res<Time>) {
for mut t in &mut q { for mut t in &mut q {
t.rotate_y(time.delta_seconds()); t.rotate_y(time.delta_secs());
} }
} }

View file

@ -54,7 +54,7 @@ fn setup(
fn rotate_camera(mut cam_transform: Single<&mut Transform, With<MainCamera>>, time: Res<Time>) { fn rotate_camera(mut cam_transform: Single<&mut Transform, With<MainCamera>>, time: Res<Time>) {
cam_transform.rotate_around( cam_transform.rotate_around(
Vec3::ZERO, Vec3::ZERO,
Quat::from_axis_angle(Vec3::Y, 45f32.to_radians() * time.delta_seconds()), Quat::from_axis_angle(Vec3::Y, 45f32.to_radians() * time.delta_secs()),
); );
cam_transform.look_at(Vec3::ZERO, Vec3::Y); cam_transform.look_at(Vec3::ZERO, Vec3::Y);
} }

View file

@ -176,7 +176,7 @@ struct Rotates;
fn rotate(mut q: Query<&mut Transform, With<Rotates>>, time: Res<Time>) { fn rotate(mut q: Query<&mut Transform, With<Rotates>>, time: Res<Time>) {
for mut t in q.iter_mut() { for mut t in q.iter_mut() {
let rot = (ops::sin(time.elapsed_seconds()) * 0.5 + 0.5) * std::f32::consts::PI * 2.0; let rot = (ops::sin(time.elapsed_secs()) * 0.5 + 0.5) * std::f32::consts::PI * 2.0;
t.rotation = Quat::from_rotation_z(rot); t.rotation = Quat::from_rotation_z(rot);
} }
} }

View file

@ -72,7 +72,7 @@ fn update(
buffer.set_data( buffer.set_data(
(0..5) (0..5)
.map(|i| { .map(|i| {
let t = time.elapsed_seconds() * 5.0; let t = time.elapsed_secs() * 5.0;
[ [
ops::sin(t + i as f32) / 2.0 + 0.5, ops::sin(t + i as f32) / 2.0 + 0.5,
ops::sin(t + i as f32 + 2.0) / 2.0 + 0.5, ops::sin(t + i as f32 + 2.0) / 2.0 + 0.5,

View file

@ -454,7 +454,7 @@ mod ui {
if direction != Vec3::ZERO { if direction != Vec3::ZERO {
transform.translation += direction.normalize() transform.translation += direction.normalize()
* if turbo.is_some() { TURBO_SPEED } else { SPEED } * if turbo.is_some() { TURBO_SPEED } else { SPEED }
* time.delta_seconds(); * time.delta_secs();
} }
} }
} }
@ -544,7 +544,7 @@ mod ui {
pub fn change_color(time: Res<Time>, mut query: Query<&mut Sprite>) { pub fn change_color(time: Res<Time>, mut query: Query<&mut Sprite>) {
for mut sprite in &mut query { for mut sprite in &mut query {
let new_color = LinearRgba { let new_color = LinearRgba {
blue: ops::sin(time.elapsed_seconds() * 0.5) + 2.0, blue: ops::sin(time.elapsed_secs() * 0.5) + 2.0,
..LinearRgba::from(sprite.color) ..LinearRgba::from(sprite.color)
}; };

View file

@ -188,7 +188,7 @@ fn movement(
} }
if direction != Vec3::ZERO { if direction != Vec3::ZERO {
transform.translation += direction.normalize() * SPEED * time.delta_seconds(); transform.translation += direction.normalize() * SPEED * time.delta_secs();
} }
} }
} }
@ -196,7 +196,7 @@ fn movement(
fn change_color(time: Res<Time>, mut query: Query<&mut Sprite>) { fn change_color(time: Res<Time>, mut query: Query<&mut Sprite>) {
for mut sprite in &mut query { for mut sprite in &mut query {
let new_color = LinearRgba { let new_color = LinearRgba {
blue: ops::sin(time.elapsed_seconds() * 0.5) + 2.0, blue: ops::sin(time.elapsed_secs() * 0.5) + 2.0,
..LinearRgba::from(sprite.color) ..LinearRgba::from(sprite.color)
}; };

View file

@ -145,7 +145,7 @@ fn movement(
} }
if direction != Vec3::ZERO { if direction != Vec3::ZERO {
transform.translation += direction.normalize() * SPEED * time.delta_seconds(); transform.translation += direction.normalize() * SPEED * time.delta_secs();
} }
} }
} }
@ -153,7 +153,7 @@ fn movement(
fn change_color(time: Res<Time>, mut query: Query<&mut Sprite>) { fn change_color(time: Res<Time>, mut query: Query<&mut Sprite>) {
for mut sprite in &mut query { for mut sprite in &mut query {
let new_color = LinearRgba { let new_color = LinearRgba {
blue: ops::sin(time.elapsed_seconds() * 0.5) + 2.0, blue: ops::sin(time.elapsed_secs() * 0.5) + 2.0,
..LinearRgba::from(sprite.color) ..LinearRgba::from(sprite.color)
}; };

View file

@ -109,7 +109,7 @@ fn movement(
} }
if direction != Vec3::ZERO { if direction != Vec3::ZERO {
transform.translation += direction.normalize() * SPEED * time.delta_seconds(); transform.translation += direction.normalize() * SPEED * time.delta_secs();
} }
} }
} }
@ -117,7 +117,7 @@ fn movement(
fn change_color(time: Res<Time>, mut query: Query<&mut Sprite>) { fn change_color(time: Res<Time>, mut query: Query<&mut Sprite>) {
for mut sprite in &mut query { for mut sprite in &mut query {
let new_color = LinearRgba { let new_color = LinearRgba {
blue: ops::sin(time.elapsed_seconds() * 0.5) + 2.0, blue: ops::sin(time.elapsed_secs() * 0.5) + 2.0,
..LinearRgba::from(sprite.color) ..LinearRgba::from(sprite.color)
}; };

View file

@ -350,7 +350,7 @@ fn mouse_handler(
} }
if mouse_button_input.pressed(MouseButton::Left) { if mouse_button_input.pressed(MouseButton::Left) {
let spawn_count = (BIRDS_PER_SECOND as f64 * time.delta_seconds_f64()) as usize; let spawn_count = (BIRDS_PER_SECOND as f64 * time.delta_secs_f64()) as usize;
spawn_birds( spawn_birds(
&mut commands, &mut commands,
args.into_inner(), args.into_inner(),
@ -514,7 +514,7 @@ fn movement_system(
let dt = if args.benchmark { let dt = if args.benchmark {
FIXED_DELTA_TIME FIXED_DELTA_TIME
} else { } else {
time.delta_seconds() time.delta_secs()
}; };
for (mut bird, mut transform) in &mut bird_query { for (mut bird, mut transform) in &mut bird_query {
step_movement(&mut transform.translation, &mut bird.velocity, dt); step_movement(&mut transform.translation, &mut bird.velocity, dt);

View file

@ -101,9 +101,9 @@ fn setup(
// System for rotating and translating the camera // System for rotating and translating the camera
fn move_camera(time: Res<Time>, mut camera_transform: Single<&mut Transform, With<Camera>>) { fn move_camera(time: Res<Time>, mut camera_transform: Single<&mut Transform, With<Camera>>) {
camera_transform.rotate(Quat::from_rotation_z(time.delta_seconds() * 0.5)); camera_transform.rotate(Quat::from_rotation_z(time.delta_secs() * 0.5));
**camera_transform = **camera_transform **camera_transform = **camera_transform
* Transform::from_translation(Vec3::X * CAMERA_SPEED * time.delta_seconds()); * Transform::from_translation(Vec3::X * CAMERA_SPEED * time.delta_secs());
} }
#[derive(Component, Deref, DerefMut)] #[derive(Component, Deref, DerefMut)]

View file

@ -444,7 +444,7 @@ fn move_camera(
* if args.benchmark { * if args.benchmark {
1.0 / 60.0 1.0 / 60.0
} else { } else {
time.delta_seconds() time.delta_secs()
}; };
camera_transform.rotate_z(delta); camera_transform.rotate_z(delta);
camera_transform.rotate_x(delta); camera_transform.rotate_x(delta);

View file

@ -261,7 +261,7 @@ fn update_fox_rings(
return; return;
} }
let dt = time.delta_seconds(); let dt = time.delta_secs();
for (ring, rotation_direction, mut transform) in &mut rings { for (ring, rotation_direction, mut transform) in &mut rings {
let angular_velocity = foxes.speed / ring.radius; let angular_velocity = foxes.speed / ring.radius;
transform.rotate_y(rotation_direction.sign() * angular_velocity * dt); transform.rotate_y(rotation_direction.sign() * angular_velocity * dt);

View file

@ -70,7 +70,7 @@ fn system(config: Res<Config>, time: Res<Time>, mut draw: Gizmos) {
for i in 0..(config.line_count / SYSTEM_COUNT) { for i in 0..(config.line_count / SYSTEM_COUNT) {
let angle = i as f32 / (config.line_count / SYSTEM_COUNT) as f32 * TAU; let angle = i as f32 / (config.line_count / SYSTEM_COUNT) as f32 * TAU;
let vector = Vec2::from(ops::sin_cos(angle)).extend(ops::sin(time.elapsed_seconds())); let vector = Vec2::from(ops::sin_cos(angle)).extend(ops::sin(time.elapsed_secs()));
let start_color = LinearRgba::rgb(vector.x, vector.z, 0.5); let start_color = LinearRgba::rgb(vector.x, vector.z, 0.5);
let end_color = LinearRgba::rgb(-vector.z, -vector.y, 0.5); let end_color = LinearRgba::rgb(-vector.z, -vector.y, 0.5);

View file

@ -134,7 +134,7 @@ fn spherical_polar_to_cartesian(p: DVec2) -> DVec3 {
// System for rotating the camera // System for rotating the camera
fn move_camera(time: Res<Time>, mut camera_transform: Single<&mut Transform, With<Camera>>) { fn move_camera(time: Res<Time>, mut camera_transform: Single<&mut Transform, With<Camera>>) {
let delta = time.delta_seconds() * 0.15; let delta = time.delta_secs() * 0.15;
camera_transform.rotate_z(delta); camera_transform.rotate_z(delta);
camera_transform.rotate_x(delta); camera_transform.rotate_x(delta);
} }

Some files were not shown because too many files have changed in this diff Show more