Initial sample binary
This commit is contained in:
parent
9af343b543
commit
5f47726943
125
examples/tweening_test.rs
Normal file
125
examples/tweening_test.rs
Normal file
@ -0,0 +1,125 @@
|
||||
use bevy::prelude::*;
|
||||
use bevy_inspector_egui::{Inspectable, InspectorPlugin};
|
||||
|
||||
use bevy_tweening::{lens::*, *};
|
||||
|
||||
fn main() {
|
||||
App::default()
|
||||
.add_plugins(DefaultPlugins.set(WindowPlugin {
|
||||
window: WindowDescriptor {
|
||||
title: "TransformPositionLens".to_string(),
|
||||
width: 1400.,
|
||||
height: 600.,
|
||||
present_mode: bevy::window::PresentMode::Fifo, // vsync
|
||||
..default()
|
||||
},
|
||||
..default()
|
||||
}))
|
||||
.add_system(bevy::window::close_on_esc)
|
||||
.add_plugin(TweeningPlugin)
|
||||
.add_plugin(InspectorPlugin::<Options>::new())
|
||||
.add_startup_system(setup)
|
||||
.add_system(update_animation_speed)
|
||||
.run();
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, PartialEq, Inspectable, Resource)]
|
||||
struct Options {
|
||||
#[inspectable(min = 0.01, max = 100.)]
|
||||
speed: f32,
|
||||
}
|
||||
|
||||
impl Default for Options {
|
||||
fn default() -> Self {
|
||||
Self { speed: 1. }
|
||||
}
|
||||
}
|
||||
|
||||
fn setup(mut commands: Commands) {
|
||||
commands.spawn(Camera2dBundle::default());
|
||||
|
||||
let size = 25.;
|
||||
|
||||
let spacing = 1.5;
|
||||
let screen_x = 570.;
|
||||
let screen_y = 150.;
|
||||
let mut x = -screen_x;
|
||||
|
||||
for ease_function in &[
|
||||
EaseFunction::QuadraticIn,
|
||||
EaseFunction::QuadraticOut,
|
||||
EaseFunction::QuadraticInOut,
|
||||
EaseFunction::CubicIn,
|
||||
EaseFunction::CubicOut,
|
||||
EaseFunction::CubicInOut,
|
||||
EaseFunction::QuarticIn,
|
||||
EaseFunction::QuarticOut,
|
||||
EaseFunction::QuarticInOut,
|
||||
EaseFunction::QuinticIn,
|
||||
EaseFunction::QuinticOut,
|
||||
EaseFunction::QuinticInOut,
|
||||
EaseFunction::SineIn,
|
||||
EaseFunction::SineOut,
|
||||
EaseFunction::SineInOut,
|
||||
EaseFunction::CircularIn,
|
||||
EaseFunction::CircularOut,
|
||||
EaseFunction::CircularInOut,
|
||||
EaseFunction::ExponentialIn,
|
||||
EaseFunction::ExponentialOut,
|
||||
EaseFunction::ExponentialInOut,
|
||||
EaseFunction::ElasticIn,
|
||||
EaseFunction::ElasticOut,
|
||||
EaseFunction::ElasticInOut,
|
||||
EaseFunction::BackIn,
|
||||
EaseFunction::BackOut,
|
||||
EaseFunction::BackInOut,
|
||||
EaseFunction::BounceIn,
|
||||
EaseFunction::BounceOut,
|
||||
EaseFunction::BounceInOut,
|
||||
] {
|
||||
let tween = Tween::new(
|
||||
*ease_function,
|
||||
std::time::Duration::from_secs(1),
|
||||
TransformPositionLens {
|
||||
start: Vec3::new(x, screen_y, 0.),
|
||||
end: Vec3::new(x, -screen_y, 0.),
|
||||
},
|
||||
)
|
||||
.then(
|
||||
Tween::new(
|
||||
EaseFunction::QuadraticInOut,
|
||||
std::time::Duration::from_millis(200),
|
||||
TransformRotateZLens {
|
||||
start: 0.05,
|
||||
end: -0.05,
|
||||
},
|
||||
)
|
||||
.with_repeat_strategy(bevy_tweening::RepeatStrategy::MirroredRepeat)
|
||||
.with_repeat_count(RepeatCount::Infinite),
|
||||
);
|
||||
|
||||
commands.spawn((
|
||||
SpriteBundle {
|
||||
sprite: Sprite {
|
||||
color: Color::RED,
|
||||
custom_size: Some(Vec2::new(size, size)),
|
||||
..default()
|
||||
},
|
||||
..default()
|
||||
},
|
||||
Animator::new(tween),
|
||||
));
|
||||
|
||||
x += size * spacing;
|
||||
}
|
||||
}
|
||||
|
||||
fn update_animation_speed(options: Res<Options>, mut animators: Query<&mut Animator<Transform>>) {
|
||||
if !options.is_changed() {
|
||||
return;
|
||||
}
|
||||
|
||||
for mut animator in animators.iter_mut() {
|
||||
animator.set_speed(options.speed);
|
||||
}
|
||||
}
|
||||
29
src/main.rs
Normal file
29
src/main.rs
Normal file
@ -0,0 +1,29 @@
|
||||
use bevy::prelude::*;
|
||||
use bevy_inspector_egui::Inspectable;
|
||||
use turtle_lib::{get_a_turtle, TurtlePlugin};
|
||||
|
||||
use bevy::diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin};
|
||||
|
||||
#[derive(Component, Inspectable)]
|
||||
struct Egon {}
|
||||
|
||||
fn main() {
|
||||
App::new()
|
||||
.add_plugin(TurtlePlugin)
|
||||
.add_startup_system(setup)
|
||||
//.add_system(plan)
|
||||
.add_plugin(LogDiagnosticsPlugin::default())
|
||||
.add_plugin(FrameTimeDiagnosticsPlugin::default())
|
||||
.run();
|
||||
}
|
||||
|
||||
fn setup(mut commands: Commands) {
|
||||
let mut turtle = get_a_turtle();
|
||||
turtle.forward(10.);
|
||||
turtle.forward(10.);
|
||||
turtle.forward(10.);
|
||||
turtle.forward(10.);
|
||||
turtle.forward(10.);
|
||||
turtle.forward(10.);
|
||||
commands.spawn((turtle, Egon {}));
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user