Skip to content
Snippets Groups Projects
Commit f1ca432a authored by Per Lindgren's avatar Per Lindgren
Browse files

smooth animation

parent b3dd5cac
No related branches found
No related tags found
No related merge requests found
File moved
......@@ -196,6 +196,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6b14f8ba7c373fdf7bd27547bb95f2849b2569bf02bbf3d19ca54e9d692de4f"
dependencies = [
"bevy_dylib",
"bevy_internal",
"syn",
]
......@@ -223,9 +224,9 @@ dependencies = [
[[package]]
name = "bevy_asset"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "426b3557161b34230e7ec04bdc48664509985ca7a6b874491f238eadd1e7cab0"
checksum = "bd798cfbed1fcd406c9b3c978a8cb0a278aa03c4c8abd6edf460ee7cad0987e0"
dependencies = [
"anyhow",
"bevy_app",
......@@ -308,6 +309,15 @@ dependencies = [
"parking_lot",
]
[[package]]
name = "bevy_dylib"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efa62c7c03470969539a07337bf8c5694c0b952678fd081d68b6331842134b85"
dependencies = [
"bevy_internal",
]
[[package]]
name = "bevy_dynamic_plugin"
version = "0.5.0"
......@@ -785,9 +795,9 @@ checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
[[package]]
name = "bytemuck"
version = "1.7.0"
version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9966d2ab714d0f785dbac0a0396251a35280aeb42413281617d0209ab4898435"
checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b"
[[package]]
name = "byteorder"
......@@ -1333,15 +1343,15 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
[[package]]
name = "futures-core"
version = "0.3.15"
version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
checksum = "af51b1b4a7fdff033703db39de8802c673eb91855f2e0d47dcf3bf2c0ef01f99"
[[package]]
name = "futures-io"
version = "0.3.15"
version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
checksum = "0b0e06c393068f3a6ef246c75cdca793d6a46347e75286933e5e75fd2fd11582"
[[package]]
name = "futures-lite"
......@@ -2547,9 +2557,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.27"
version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612"
dependencies = [
"unicode-xid",
]
......
......@@ -6,5 +6,5 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
#bevy = { version = "0.5.0", features = ["dynamic"] }
bevy = { version = "0.5.0" }
\ No newline at end of file
bevy = { version = "0.5.0", features = ["dynamic"] }
# bevy = { version = "0.5.0" }
\ No newline at end of file
......@@ -8,21 +8,15 @@ fn main() {
.insert_resource(WindowDescriptor {
title: "My Little Zombie".to_string(),
width: 1920.,
height: 1080.,
height: 1081.,
..Default::default()
})
.add_startup_system(setup.system())
// .add_system(player_movement.system())
.add_system_set(
SystemSet::new()
.with_run_criteria(FixedTimestep::step(1.0 / 60.0))
.with_system(player_movement.system()),
)
// .add_system_set(
// SystemSet::new()
// .with_run_criteria(FixedTimestep::step(1.0 / 10.0))
// .with_system(player_animation.system()),
// )
.add_plugins(DefaultPlugins)
.run();
}
......@@ -47,7 +41,7 @@ fn setup(
transform: Transform {
translation: Vec3::new(0., bottom / 2.0, 10.0),
// scale: Vec3::new(1., 1., 1.0),
scale: Vec3::new(1., 1., 1.0),
..Default::default()
},
..Default::default()
......@@ -76,133 +70,32 @@ impl Default for Player {
// run each frame (60Hz)
fn player_movement(
keyboard_input: Res<Input<KeyCode>>,
mut query: Query<(&mut Player, &mut Transform, &mut TextureAtlasSprite)>,
keyboard_input: Res<Input<KeyCode>>,
) {
if let Ok((mut player, mut transform, mut sprite)) = query.single_mut() {
let (index, state, dir) = if keyboard_input.pressed(KeyCode::Left) {
let (index, state, dir) = if keyboard_input.pressed(KeyCode::Right) {
match player.state {
State::Left => ((player.index + 1) % 8, State::Left, -2.),
_ => (1, State::Left, 1.),
// already walking
State::Right => {
let index = (player.index + 1) % 32;
sprite.index = (4 * 9) + index / 4;
(index, State::Right, 2.)
}
// starting walking
_ => {
let index = 3 * 4;
sprite.index = (4 * 9) + index / 4;
(index, State::Right, 2.)
}
}
} else {
sprite.index = 0;
(0, State::Idle, 0.)
};
player.state = state;
player.index = index;
sprite.index = if index == 0 { 0 } else { 4 * 9 - 1 + index };
transform.translation.x += dir;
}
}
// fn player_movement(mut head_positions: Query<(&SnakeHead, &mut Transform)>) {
// for (_head, mut transform) in head_positions.iter_mut() {
// transform.translation.y += 2.;
// }
// }
// pub struct PlayerPlugin;
// impl Plugin for PlayerPlugin {
// fn build(&self, app: &mut AppBuilder) {
// app.insert_resource(PlayerState::default())
// .add_startup_stage(
// "game_setup_actors",
// SystemStage::single(player_spawn.system()),
// )
// .add_system(player_movement.system())
// .add_system(player_fire.system())
// .add_system(laser_movement.system())
// .add_system_set(
// SystemSet::new()
// .with_run_criteria(FixedTimestep::step(0.5))
// .with_system(player_spawn.system()),
// );
// }
// }
// fn player_spawn(
// mut commands: Commands,
// materials: Res<Materials>,
// win_size: Res<WinSize>,
// time: Res<Time>,
// mut player_state: ResMut<PlayerState>,
// ) {
// let now = time.seconds_since_startup();
// let last_shot = player_state.last_shot;
// // spawn a sprite
// if !player_state.on && (last_shot == 0. || now > last_shot + PLAYER_RESPAWN_DELAY) {
// let bottom = -win_size.h / 2.;
// commands
// .spawn_bundle(SpriteBundle {
// material: materials.player.clone(),
// transform: Transform {
// translation: Vec3::new(0., bottom + 75. / 4. + 5., 10.),
// scale: Vec3::new(SCALE, SCALE, 1.),
// ..Default::default()
// },
// ..Default::default()
// })
// .insert(Player)
// .insert(PlayerReadyFire(true))
// .insert(Speed::default());
// player_state.spawned();
// }
// }
// fn player_fire(
// mut commands: Commands,
// kb: Res<Input<KeyCode>>,
// materials: Res<Materials>,
// mut query: Query<(&Transform, &mut PlayerReadyFire), With<Player>>,
// ) {
// if let Ok((player_tf, mut ready_fire)) = query.single_mut() {
// if ready_fire.0 && kb.pressed(KeyCode::Space) {
// let x = player_tf.translation.x;
// let y = player_tf.translation.y;
// let mut spawn_lasers = |x_offset: f32| {
// commands
// .spawn_bundle(SpriteBundle {
// material: materials.player_laser.clone(),
// transform: Transform {
// translation: Vec3::new(x + x_offset, y + 15., 0.),
// scale: Vec3::new(SCALE, SCALE, 1.),
// ..Default::default()
// },
// ..Default::default()
// })
// .insert(Laser)
// .insert(FromPlayer)
// .insert(Speed::default());
// };
// let x_offset = 144.0 / 4.0 - 5.0;
// spawn_lasers(x_offset);
// spawn_lasers(-x_offset);
// ready_fire.0 = false;
// }
// if kb.just_released(KeyCode::Space) {
// ready_fire.0 = true;
// }
// }
// }
// fn laser_movement(
// mut commands: Commands,
// win_size: Res<WinSize>,
// mut query: Query<(Entity, &Speed, &mut Transform), (With<Laser>, With<FromPlayer>)>,
// ) {
// for (laser_entity, speed, mut laser_tf) in query.iter_mut() {
// let translation = &mut laser_tf.translation;
// translation.y += speed.0 * TIME_STEP;
// if translation.y > win_size.h {
// commands.entity(laser_entity).despawn();
// }
// }
// }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment