/
multiple.rs
70 lines (64 loc) · 1.71 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
62
63
64
65
66
67
68
69
70
use std::f32::consts::PI;
use bevy::{prelude::*, window::PrimaryWindow};
use bevy_scroller::{
Scroller, ScrollerBundle, ScrollerPlugin, ScrollerSize, SingleSpriteGenerator,
};
fn main() {
let mut app = App::new();
app
.add_plugins((DefaultPlugins, ScrollerPlugin))
.add_systems(Startup, start);
#[cfg(feature = "dev")]
{
use bevy_editor_pls::EditorPlugin;
app.add_plugins(EditorPlugin::default());
}
app.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: 0.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: 0.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()
},
));
}