Compare commits

..

No commits in common. "26cf4c745314674fb3886409a34a358faf3dd89d" and "00e5bab2a56c5d47f34140aa9ea4561a559d3a0c" have entirely different histories.

1 changed files with 12 additions and 32 deletions

View File

@ -60,19 +60,9 @@ fn main() {
.insert_resource(WinitSettings::desktop_app()) .insert_resource(WinitSettings::desktop_app())
.add_plugins(DefaultPlugins) .add_plugins(DefaultPlugins)
.add_systems(Startup, setup) .add_systems(Startup, setup)
.add_systems(Update, rotate_board)
.run(); .run();
} }
fn rotate_board(mut board: Query<&mut Transform, With<Board>>) {
let mut board = board.get_single_mut().unwrap();
board.rotate_local_z(0.1);
}
#[derive(Component)]
struct Board;
fn setup( fn setup(
mut commands: Commands, mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>, mut meshes: ResMut<Assets<Mesh>>,
@ -83,34 +73,24 @@ fn setup(
const TILES: i32 = 9; const TILES: i32 = 9;
const TILE_SIZE: f32 = 50.; const TILE_SIZE: f32 = 50.;
const GAP_SIZE: f32 = 10.; const GAP_SIZE: f32 = 10.;
const OFFSET: f32 = (TILE_SIZE + GAP_SIZE) / 2.;
const TOTAL_WIDTH: f32 = (TILE_SIZE + GAP_SIZE) * TILES as f32; const TOTAL_WIDTH: f32 = (TILE_SIZE + GAP_SIZE) * TILES as f32;
const TILE_SPACE: f32 = TOTAL_WIDTH / TILES as f32; const TILE_SPACE: f32 = TOTAL_WIDTH / TILES as f32;
const OFFSET: f32 = TILE_SPACE / 2.;
const CENTER: f32 = TOTAL_WIDTH / 2.; const CENTER: f32 = TOTAL_WIDTH / 2.;
let tile_mesh = Mesh2dHandle(meshes.add(Rectangle::new(TILE_SIZE, TILE_SIZE))); let tile_mesh = Mesh2dHandle(meshes.add(Rectangle::new(TILE_SIZE, TILE_SIZE)));
let tile_color = Color::from(tailwind::NEUTRAL_700); let tile_color = Color::from(tailwind::NEUTRAL_700);
commands for i in 0..TILES {
.spawn(( for j in 0..TILES {
SpatialBundle { let tile_x = i as f32 * TILE_SPACE - CENTER + OFFSET;
transform: Transform::from_xyz(0., 0., 0.), let tile_y = j as f32 * TILE_SPACE - CENTER + OFFSET;
commands.spawn(MaterialMesh2dBundle {
mesh: tile_mesh.clone(),
material: materials.add(tile_color),
transform: Transform::from_xyz(tile_x, tile_y, 0.),
..default() ..default()
}, });
Board, }
)) }
.with_children(|parent| {
for i in 0..TILES {
for j in 0..TILES {
let tile_x = i as f32 * TILE_SPACE - CENTER + OFFSET;
let tile_y = j as f32 * TILE_SPACE - CENTER + OFFSET;
parent.spawn(MaterialMesh2dBundle {
mesh: tile_mesh.clone(),
material: materials.add(tile_color),
transform: Transform::from_xyz(tile_x, tile_y, 0.),
..default()
});
}
}
});
} }