#bevy #engine #gamedev #bevy-plugin #game-engine #game

bevy-tick-timers

基于Tick的计时器,适用于Bevy

1个不稳定版本

0.3.0 2022年5月2日
0.2.0 2022年2月10日
0.1.1 2021年2月4日
0.1.0 2021年1月29日

#177 in #bevy-plugin

26 每月下载量

MIT/Apache

8KB
108

Bevy-tick-timers

提供用于安排和管理基于Tick的计时器的Bevy插件。

基于Tick的计时器是按照状态更新次数而不是实际时间来运行的计时器。每次状态更新都构成一个"Tick"。

对于任何不在游戏会话之外更新的计时器,基于Tick的计时器是首选的。这使得游戏更一致且可重放(这也意味着它们更容易调试)。

示例

use bevy::prelude::*;
use bevy_tick_timers::{TimerPlugin, Timers};

fn add_timer(
    mut timers: ResMut<Timers>,
) {
    // Timers are Bevy systems, and thus can be closures. 
    timers.after(5, (move || {
        println!("timer has gone off!");
    }).system());
}

fn main() {
    println!("starting up");
    App::build()
        .add_plugins(DefaultPlugins)
        .add_plugin(TimerPlugin)
        .add_startup_system(add_timer.system())
        .run();
}

lib.rs:

bevy-tick-timers 提供了一个Bevy插件,该插件允许使用基于Tick的计时器。

基于Tick的计时器是按照状态更新次数而不是实际时间来运行的计时器。每次状态更新都构成一个"Tick"。

对于任何不在游戏会话之外更新的计时器,基于Tick的计时器是首选的。这使得游戏更一致且可重放(这也意味着它们更容易调试)。

示例

use bevy::prelude::*;
use bevy_tick_timers::{TimerPlugin, Timers};

fn add_timer(
    mut timers: ResMut<Timers>,
) {
    // Timers are closures that take the world as a mutable reference.
    timers.after(5, |_| {
        println!("timer has gone off!");
    });
}

fn main() {
    println!("starting up");
    App::build()
        .add_plugins(DefaultPlugins)
        .add_plugin(TimerPlugin)
        .add_startup_system(add_timer.system())
        .run();
}

依赖项

~18–34MB
~544K SLoC