Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn confine(
- mut confinable_query: Query<(&mut Transform, &Handle<Image>), With<Confinable>>,
- window_query: Query<&Window, With<PrimaryWindow>>,
- assets: Res<Assets<Image>>
- ) {
- let window = window_query.get_single().unwrap();
- for (mut transform, image_handle) in confinable_query.iter_mut() {
- let image_dimensions = assets.get(image_handle).unwrap().size();
- let half_x = image_dimensions.x / 2.;
- let half_y = image_dimensions.y / 2.;
- let min_x = 0. + half_x;
- let max_x = window.width() - half_x;
- let min_y = 0. + half_y;
- let max_y = window.height() - half_y;
- let mut translation = transform.translation;
- translation.x = translation.x.clamp(min_x, max_x);
- translation.y = translation.y.clamp(min_y, max_y);
- transform.translation = translation;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement