bevyjam/src/main.rs

56 lines
1.5 KiB
Rust
Raw Normal View History

2022-08-24 09:31:17 +00:00
#[cfg(not(target_arch = "wasm32"))]
2022-08-23 15:02:13 +00:00
mod audio;
2022-08-24 10:21:08 +00:00
mod filters;
2022-08-21 17:17:55 +00:00
mod game;
2022-08-23 10:02:58 +00:00
mod levels;
2022-08-21 17:17:55 +00:00
mod menu;
2022-08-23 15:14:32 +00:00
mod particle_effect;
2022-08-21 17:17:55 +00:00
2022-08-24 10:21:08 +00:00
use bevy::prelude::*;
2022-08-21 17:17:55 +00:00
use bevy_rapier2d::prelude::*;
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
enum AppState {
Menu,
Game,
2022-08-23 10:02:58 +00:00
Win,
2022-08-21 17:17:55 +00:00
}
fn main() {
2022-08-24 09:31:17 +00:00
let (audio_event_sender, audio_event_receiver) =
crossbeam_channel::bounded::<game::AudioMsg>(512);
2022-08-23 15:02:13 +00:00
2022-08-24 09:31:17 +00:00
#[cfg(not(target_arch = "wasm32"))]
2022-08-23 15:02:13 +00:00
std::thread::spawn(move || audio::setup(audio_event_receiver));
2022-08-21 17:17:55 +00:00
App::new()
2022-08-24 10:21:08 +00:00
.insert_resource(Msaa { samples: 4 })
2022-08-23 15:02:13 +00:00
.insert_resource(audio_event_sender)
2022-08-21 17:17:55 +00:00
.add_state(AppState::Menu)
2022-08-24 10:21:08 +00:00
.insert_resource(ClearColor(Color::BLACK))
2022-08-21 17:17:55 +00:00
.add_plugins(DefaultPlugins)
.add_plugin(RapierPhysicsPlugin::<NoUserData>::pixels_per_meter(64.0))
2022-08-24 10:21:08 +00:00
//.add_plugin(RapierDebugRenderPlugin::default())
2022-08-21 17:17:55 +00:00
.add_plugin(menu::MenuPlugin)
.add_plugin(game::GamePlugin)
2022-08-24 05:52:14 +00:00
.add_plugin(particle_effect::ParticleEffectPlugin)
2022-08-24 10:21:08 +00:00
//.add_plugin(bevy_inspector_egui::WorldInspectorPlugin::new())
.add_system(bevy::window::close_on_esc)
2022-08-21 17:17:55 +00:00
.add_startup_system(setup)
.run();
}
2022-08-23 15:02:13 +00:00
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
2022-08-24 09:31:17 +00:00
#[cfg(not(target_arch = "wasm32"))]
let font: Handle<Font> = asset_server.load("UacariLegacy-Thin.ttf");
#[cfg(target_arch = "wasm32")]
2022-08-23 10:42:56 +00:00
let font: Handle<Font> = asset_server.load("UacariLegacy-Thin.ttf");
commands.insert_resource(font);
2022-08-21 17:17:55 +00:00
2022-08-24 10:21:08 +00:00
commands.spawn_bundle(Camera2dBundle::default());
2022-08-21 17:17:55 +00:00
commands.insert_resource(AmbientLight {
color: Color::WHITE,
brightness: 0.6,
});
}