Compare commits

...

3 Commits

Author SHA1 Message Date
Zynh Ludwig 26cf4c7453 hee hee spinny square 2024-08-20 20:07:12 -07:00
Zynh Ludwig 866490795d simpler calculation 2024-08-20 12:45:46 -07:00
Zynh Ludwig e57ebb51a8 add Board marker 2024-08-20 12:23:05 -07:00
1 changed files with 32 additions and 12 deletions

View File

@ -60,9 +60,19 @@ 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>>,
@ -73,19 +83,28 @@ 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
.spawn((
SpatialBundle {
transform: Transform::from_xyz(0., 0., 0.),
..default()
},
Board,
))
.with_children(|parent| {
for i in 0..TILES { for i in 0..TILES {
for j in 0..TILES { for j in 0..TILES {
let tile_x = i as f32 * TILE_SPACE - CENTER + OFFSET; let tile_x = i as f32 * TILE_SPACE - CENTER + OFFSET;
let tile_y = j as f32 * TILE_SPACE - CENTER + OFFSET; let tile_y = j as f32 * TILE_SPACE - CENTER + OFFSET;
commands.spawn(MaterialMesh2dBundle { parent.spawn(MaterialMesh2dBundle {
mesh: tile_mesh.clone(), mesh: tile_mesh.clone(),
material: materials.add(tile_color), material: materials.add(tile_color),
transform: Transform::from_xyz(tile_x, tile_y, 0.), transform: Transform::from_xyz(tile_x, tile_y, 0.),
@ -93,4 +112,5 @@ fn setup(
}); });
} }
} }
});
} }