-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmultiple.rs
61 lines (55 loc) · 1.53 KB
/
multiple.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
mod shared;
use bevy::{prelude::*, window::PrimaryWindow};
use bevy_scroller::{Scroller, ScrollerBundle, ScrollerSize, SingleSpriteGenerator};
use shared::get_app;
use std::f32::consts::PI;
fn main() {
get_app("multiple".into()).add_systems(Startup, start).run();
}
pub fn start(mut commands: Commands, windows: Query<&Window, With<PrimaryWindow>>) {
let window = windows.get_single().expect("no primary window");
let sprite_size = Vec2::new(128., 128.);
commands.spawn(Camera2dBundle::default());
commands.spawn((
ScrollerSize {
size: Vec2::new(window.width(), sprite_size.y),
},
ScrollerBundle {
scroller: Scroller {
speed: 5.,
..default()
},
generator: SingleSpriteGenerator {
path: "gems/1.png".into(),
size: sprite_size,
},
spatial: SpatialBundle::from_transform(Transform::from_translation(Vec3::new(
0.,
(sprite_size.y - window.height()) / 2.,
0.,
))),
..default()
},
));
commands.spawn((
ScrollerSize {
size: Vec2::new(window.width(), sprite_size.y),
},
ScrollerBundle {
scroller: Scroller {
speed: 5.,
..default()
},
generator: SingleSpriteGenerator {
path: "gems/2.png".into(),
size: sprite_size,
},
spatial: SpatialBundle::from_transform(Transform {
translation: Vec3::new(0., (window.height() - sprite_size.y) / 2., 0.),
rotation: Quat::from_rotation_z(PI),
..default()
}),
..default()
},
));
}