1
+ use bevy:: core:: FixedTimestep ;
1
2
use bevy:: prelude:: * ;
2
3
3
4
/// This example creates a new event, a system that triggers the event once per second,
@@ -6,8 +7,11 @@ fn main() {
6
7
App :: build ( )
7
8
. add_plugins ( DefaultPlugins )
8
9
. add_event :: < MyEvent > ( )
9
- . init_resource :: < EventTriggerState > ( )
10
- . add_system ( event_trigger_system. system ( ) )
10
+ . add_system (
11
+ event_trigger_system
12
+ . system ( )
13
+ . with_run_criteria ( FixedTimestep :: step ( 1.0 ) ) ,
14
+ )
11
15
. add_system ( event_listener_system. system ( ) )
12
16
. run ( ) ;
13
17
}
@@ -16,29 +20,11 @@ struct MyEvent {
16
20
pub message : String ,
17
21
}
18
22
19
- struct EventTriggerState {
20
- event_timer : Timer ,
21
- }
22
-
23
- impl Default for EventTriggerState {
24
- fn default ( ) -> Self {
25
- EventTriggerState {
26
- event_timer : Timer :: from_seconds ( 1.0 , true ) ,
27
- }
28
- }
29
- }
30
-
31
23
// sends MyEvent every second
32
- fn event_trigger_system (
33
- time : Res < Time > ,
34
- mut state : ResMut < EventTriggerState > ,
35
- mut my_events : EventWriter < MyEvent > ,
36
- ) {
37
- if state. event_timer . tick ( time. delta ( ) ) . finished ( ) {
38
- my_events. send ( MyEvent {
39
- message : "MyEvent just happened!" . to_string ( ) ,
40
- } ) ;
41
- }
24
+ fn event_trigger_system ( mut my_events : EventWriter < MyEvent > ) {
25
+ my_events. send ( MyEvent {
26
+ message : "MyEvent just happened!" . to_string ( ) ,
27
+ } ) ;
42
28
}
43
29
44
30
// prints events as they come in
0 commit comments