diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-21 17:44:23 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-21 22:17:54 +0200 |
commit | b1eba76afaf7a506ff912634da6220db15d0023e (patch) | |
tree | 054ab1fc9a5657eb6cffde3a7767e538e046003f | |
parent | b52e399a6f4b25383f8876b38cfee6364c677cd9 (diff) | |
download | hurrycurry-b1eba76afaf7a506ff912634da6220db15d0023e.tar hurrycurry-b1eba76afaf7a506ff912634da6220db15d0023e.tar.bz2 hurrycurry-b1eba76afaf7a506ff912634da6220db15d0023e.tar.zst |
pixel: interpolate interact target position
-rw-r--r-- | pixel-client/src/game.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pixel-client/src/game.rs b/pixel-client/src/game.rs index c9253e1f..90711c48 100644 --- a/pixel-client/src/game.rs +++ b/pixel-client/src/game.rs @@ -67,6 +67,7 @@ pub struct Player { item: Option<Item>, _name: String, _character: i32, + interact_target_anim: Vec2, } pub struct Item { @@ -158,6 +159,11 @@ impl Game { self.network.queue_out.push_back(movement_packet); } + player.interact_target_anim.exp_to( + player.movement.get_interact_target().as_vec2() + Vec2::new(0., -0.4), + dt * 20., + ); + self.camera_center.exp_to(player.movement.position, dt * 5.); } @@ -236,6 +242,7 @@ impl Game { self.players.insert( id, Player { + interact_target_anim: position, _character: character, _name: name, item: None, @@ -344,11 +351,10 @@ impl Game { self.tilemap.draw(ctx); if let Some(me) = self.players.get(&self.my_id) { - let t = me.movement.get_interact_target(); ctx.draw_world( self.misc_textures .interact_target - .at(t.as_vec2()) + .at(me.interact_target_anim) .tint(100, 100, 255), ) } |