use bevy::prelude::*; mod assets; mod camera; mod movement; mod player; mod statue; fn main() { let mut app = App::new(); app.add_plugins( DefaultPlugins .set(WindowPlugin { primary_window: Some(Window { title: "Kodo Tag".into(), resolution: (800., 600.).into(), ..Default::default() }), ..Default::default() }) .set(ImagePlugin::default_nearest()), ) .add_plugins(( statue::Statue, camera::Camera, assets::AssetPlugin, player::Player, movement::Movement, )) .add_systems(Update, keyboard_input_system) .insert_resource(ClearColor(Color::rgb(0.3, 0., 0.5))) .insert_resource(AmbientLight { color: Color::rgb(1., 1., 1.), brightness: 1., }); app.run() } fn keyboard_input_system( mut query: Query<(&Handle, &mut TextureAtlasSprite), With>, keyboard_input: Res>, mut app_exit_events: ResMut>, texture_atlases: Res>, ) { if keyboard_input.pressed(KeyCode::Escape) { app_exit_events.send(bevy::app::AppExit); } else if keyboard_input.just_pressed(KeyCode::N) { let (texture, mut sprite) = query.single_mut(); let t = texture_atlases .get(texture) .expect("could not load player texture"); if sprite.index < t.textures.len() - 1 { sprite.index += 1; } else { sprite.index = 0; } } }