main.rs 860B

123456789101112131415161718192021222324252627282930313233343536373839
  1. use std::env;
  2. use std::path;
  3. use ggez::{event, GameResult};
  4. use glam::Vec2;
  5. use scene::main::MainState;
  6. mod behavior;
  7. mod config;
  8. mod map;
  9. mod physics;
  10. mod scene;
  11. mod ui;
  12. mod util;
  13. type WindowPoint = Vec2;
  14. type Offset = Vec2;
  15. type ScenePoint = Vec2;
  16. type Vector2 = Vec2;
  17. pub fn main() -> GameResult {
  18. let resource_dir = if let Ok(manifest_dir) = env::var("CARGO_MANIFEST_DIR") {
  19. let mut path = path::PathBuf::from(manifest_dir);
  20. path.push("resources");
  21. path
  22. } else {
  23. path::PathBuf::from("./resources")
  24. };
  25. let cb = ggez::ContextBuilder::new("oc", "bux")
  26. .add_resource_path(resource_dir)
  27. .window_mode(ggez::conf::WindowMode::default().dimensions(800.0, 600.0));
  28. let (mut ctx, event_loop) = cb.build()?;
  29. let state = MainState::new(&mut ctx)?;
  30. event::run(ctx, event_loop, state)
  31. }