mesh2d_alpha_mode/
mesh2d_alpha_mode.rs1use bevy::{
5 color::palettes::css::{BLUE, GREEN, WHITE},
6 prelude::*,
7 sprite_render::AlphaMode2d,
8};
9
10fn main() {
11 App::new()
12 .add_plugins(DefaultPlugins)
13 .add_systems(Startup, setup)
14 .run();
15}
16
17fn setup(
18 mut commands: Commands,
19 asset_server: Res<AssetServer>,
20 mut meshes: ResMut<Assets<Mesh>>,
21 mut materials: ResMut<Assets<ColorMaterial>>,
22) {
23 commands.spawn(Camera2d);
24
25 let texture_handle = asset_server.load("branding/icon.png");
26 let mesh_handle = meshes.add(Rectangle::from_size(Vec2::splat(256.0)));
27
28 commands.spawn((
32 Mesh2d(mesh_handle.clone()),
33 MeshMaterial2d(materials.add(ColorMaterial {
34 color: WHITE.into(),
35 alpha_mode: AlphaMode2d::Opaque,
36 texture: Some(texture_handle.clone()),
37 ..default()
38 })),
39 Transform::from_xyz(-400.0, 0.0, 0.0),
40 ));
41 commands.spawn((
42 Mesh2d(mesh_handle.clone()),
43 MeshMaterial2d(materials.add(ColorMaterial {
44 color: BLUE.into(),
45 alpha_mode: AlphaMode2d::Opaque,
46 texture: Some(texture_handle.clone()),
47 ..default()
48 })),
49 Transform::from_xyz(-300.0, 0.0, 1.0),
50 ));
51 commands.spawn((
52 Mesh2d(mesh_handle.clone()),
53 MeshMaterial2d(materials.add(ColorMaterial {
54 color: GREEN.into(),
55 alpha_mode: AlphaMode2d::Opaque,
56 texture: Some(texture_handle.clone()),
57 ..default()
58 })),
59 Transform::from_xyz(-200.0, 0.0, -1.0),
60 ));
61
62 commands.spawn((
68 Mesh2d(mesh_handle.clone()),
69 MeshMaterial2d(materials.add(ColorMaterial {
70 color: WHITE.into(),
71 alpha_mode: AlphaMode2d::Mask(0.5),
72 texture: Some(texture_handle.clone()),
73 ..default()
74 })),
75 Transform::from_xyz(200.0, 0.0, 0.0),
76 ));
77 commands.spawn((
78 Mesh2d(mesh_handle.clone()),
79 MeshMaterial2d(materials.add(ColorMaterial {
80 color: BLUE.with_alpha(0.7).into(),
81 alpha_mode: AlphaMode2d::Blend,
82 texture: Some(texture_handle.clone()),
83 ..default()
84 })),
85 Transform::from_xyz(300.0, 0.0, 1.0),
86 ));
87 commands.spawn((
88 Mesh2d(mesh_handle.clone()),
89 MeshMaterial2d(materials.add(ColorMaterial {
90 color: GREEN.with_alpha(0.7).into(),
91 alpha_mode: AlphaMode2d::Blend,
92 texture: Some(texture_handle),
93 ..default()
94 })),
95 Transform::from_xyz(400.0, 0.0, -1.0),
96 ));
97}