 94e0e1f031
			
		
	
	
		94e0e1f031
		
			
		
	
	
	
	
		
			
			# Objective Make the examples look more uniform and more polished. following the issue #17167 ## Solution - [x] Added a minimal UI explaining how to interact with the examples only when needed. - [x] Used the same notation for interactions ex : "Up Arrow: Move Forward \nLeft / Right Arrow: Turn" - [x] Set the color to [GRAY](https://github.com/bevyengine/bevy/pull/17237#discussion_r1907560092) when it's not visible enough - [x] Changed some colors to be easy on the eyes - [x] removed the //camera comment - [x] Unified the use of capital letters in the examples. - [x] Simplified the mesh2d_arc offset calculations. ... --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com> Co-authored-by: Rob Parrett <robparrett@gmail.com>
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //! This example demonstrates how to use the `Camera::viewport_to_world_2d` method.
 | |
| 
 | |
| use bevy::{color::palettes::basic::WHITE, prelude::*};
 | |
| 
 | |
| fn main() {
 | |
|     App::new()
 | |
|         .add_plugins(DefaultPlugins)
 | |
|         .add_systems(Startup, setup)
 | |
|         .add_systems(Update, draw_cursor)
 | |
|         .run();
 | |
| }
 | |
| 
 | |
| fn draw_cursor(
 | |
|     camera_query: Single<(&Camera, &GlobalTransform)>,
 | |
|     window: Single<&Window>,
 | |
|     mut gizmos: Gizmos,
 | |
| ) {
 | |
|     let (camera, camera_transform) = *camera_query;
 | |
| 
 | |
|     let Some(cursor_position) = window.cursor_position() else {
 | |
|         return;
 | |
|     };
 | |
| 
 | |
|     // Calculate a world position based on the cursor's position.
 | |
|     let Ok(point) = camera.viewport_to_world_2d(camera_transform, cursor_position) else {
 | |
|         return;
 | |
|     };
 | |
| 
 | |
|     gizmos.circle_2d(point, 10., WHITE);
 | |
| }
 | |
| 
 | |
| fn setup(mut commands: Commands) {
 | |
|     commands.spawn(Camera2d);
 | |
| 
 | |
|     // Create a minimal UI explaining how to interact with the example
 | |
|     commands.spawn((
 | |
|         Text::new("Move the mouse to see the circle follow your cursor."),
 | |
|         Node {
 | |
|             position_type: PositionType::Absolute,
 | |
|             top: Val::Px(12.0),
 | |
|             left: Val::Px(12.0),
 | |
|             ..default()
 | |
|         },
 | |
|     ));
 | |
| }
 |