forked from SET001/bevy_scroller
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsequence.rs
47 lines (41 loc) · 1.17 KB
/
sequence.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use std::collections::VecDeque;
use bevy::{prelude::*, window::PrimaryWindow};
use bevy_scroller::{Scroller, ScrollerBundle, ScrollerGenerator, ScrollerPlugin, ScrollerSize};
#[derive(Resource)]
pub struct ScrollerImages(Vec<Handle<Image>>);
fn main() {
let mut app = App::new();
app
.add_plugins((DefaultPlugins, ScrollerPlugin))
.add_systems(Startup, start);
app.run();
}
pub fn start(
mut commands: Commands,
asset_server: Res<AssetServer>,
windows: Query<&Window, With<PrimaryWindow>>,
) {
let primary_window = windows.get_single().expect("no primary window");
commands.spawn(Camera2dBundle::default());
let images = (1..=7)
.map(|i| format!("gems/{i}.png"))
.collect::<VecDeque<String>>();
let images_handles = images
.iter()
.map(|image_path| asset_server.load(image_path))
.collect::<Vec<Handle<Image>>>();
commands.insert_resource(ScrollerImages(images_handles));
commands.spawn((
ScrollerGenerator::SpriteSequence(images),
ScrollerSize {
size: Vec2::new(primary_window.width(), 128.),
},
ScrollerBundle {
scroller: Scroller {
speed: 1.,
..default()
},
..default()
},
));
}