main.rs 861B

1234567891011121314151617181920212223242526272829303132333435363738
  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 physics;
  9. mod scene;
  10. mod ui;
  11. type Point2 = Vec2;
  12. type WindowPoint = Vec2;
  13. type Offset = Vec2;
  14. type ScenePoint = Vec2;
  15. type Vector2 = Vec2;
  16. pub fn main() -> GameResult {
  17. let resource_dir = if let Ok(manifest_dir) = env::var("CARGO_MANIFEST_DIR") {
  18. let mut path = path::PathBuf::from(manifest_dir);
  19. path.push("resources");
  20. path
  21. } else {
  22. path::PathBuf::from("./resources")
  23. };
  24. let cb = ggez::ContextBuilder::new("oc", "bux")
  25. .add_resource_path(resource_dir)
  26. .window_mode(ggez::conf::WindowMode::default().dimensions(800.0, 600.0));
  27. let (mut ctx, event_loop) = cb.build()?;
  28. let state = MainState::new(&mut ctx)?;
  29. event::run(ctx, event_loop, state)
  30. }