From 3f75d0495334fbf1e0a7ff408b23cdd1b3f7ec49 Mon Sep 17 00:00:00 2001 From: TudbuT Date: Sun, 24 Nov 2024 07:45:51 +0100 Subject: [PATCH] parallax no bugey --- assets/world.txt | 4 ++-- src/parallax.rs | 25 +++++++++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/assets/world.txt b/assets/world.txt index a714bb6..a2f3953 100644 --- a/assets/world.txt +++ b/assets/world.txt @@ -58,7 +58,7 @@ blocks TTTTTTTTTT T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTTTTTTTTT TEEEEEEEEEEEEEEEEEEEEEEEEEEEEETT T T TTTTTTTTTT TTTTTTTTTTT TEEEEEEEEEEEEEEEEEEEEEEEEEEEEETT T T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTTTTTTTTTT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTT TTTTT - TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T T + TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T T P TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTttttttttttttttttttt _ S T T _______________________________________________________________________________________________________________________________________________ TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTtt T _T TT T GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T T T _________GT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE @@ -71,7 +71,7 @@ T T O S OT T T T T T O T _______ T T T T T O S T S _GGGGGGGTTT T T T -T P ______ _ __GEEEEEEEE T T +T ______ _ __GEEEEEEEE T T TT ,,,_______,,,_a____,___ __GGGGGG TTTTTTTTT _____,_____GGEEEEEEEEE______________T_____ _________________T TTTTTTTTEEEGGGGGGGEEEGGGGGGEGGGE GGEEEEEE TTTTTTTTTTTTTTTGGGGGEGGGGGEEEEEEEEEEEGGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGT TTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEE TTTTTTTTTTTTEEEEEEEEEETEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET diff --git a/src/parallax.rs b/src/parallax.rs index 6dcb1a7..a43b1ac 100644 --- a/src/parallax.rs +++ b/src/parallax.rs @@ -5,6 +5,7 @@ use bevy::{ view::{NoFrustumCulling, VisibilitySystems}, }, sprite::MaterialMesh2dBundle, + window::PrimaryWindow, }; use bevy_rapier2d::parry::simba::scalar::SupersetOf; @@ -67,20 +68,24 @@ fn update_parallax( mut commands: Commands, mut query: Query<(Entity, &Parallax, &ParallaxTile, &mut Transform)>, camera_query: Query<(&Camera2d, &Transform), (Without)>, + window_query: Query<&Window, With>, ) { let (_, cam_transform) = camera_query.single(); let cam_transform = cam_transform.translation; + let window = window_query.single(); for (entity, parallax_info, ParallaxTile(tile), mut transform) in query.iter_mut() { - let position_on_parallax = cam_transform.xy() - - Vec2::new( - cam_transform.x / parallax_info.factor, - cam_transform.y / parallax_info.y_factor, - ); - let first_parallax_on_cam = - (position_on_parallax / parallax_info.size).floor() * parallax_info.size; - let position = first_parallax_on_cam - + Vec2::new(*tile as f32, 0.) * parallax_info.size - + position_on_parallax % parallax_info.size; + let position_on_parallax = (cam_transform.x / parallax_info.factor) % parallax_info.size.x; + let first_parallax_on_cam = cam_transform.x - position_on_parallax; + let position = Vec2::new( + first_parallax_on_cam + *tile as f32 * parallax_info.size.x, + cam_transform.y, + ); + dbg!( + cam_transform, + position_on_parallax, + first_parallax_on_cam, + position + ); transform.translation = position.extend(-parallax_info.depth) + Vec3::new(0., parallax_info.offset, 0.); }