summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs47
1 files changed, 45 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index e7a11a9..d295f3a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,46 @@
-fn main() {
- println!("Hello, world!");
+use ggez;
+use ggez::event;
+use ggez::graphics;
+use ggez::nalgebra as na;
+
+struct MainState {
+ pos_x: f32,
+}
+
+impl MainState {
+ fn new() -> ggez::GameResult<MainState> {
+ let s = MainState { pos_x: 0.0 };
+ Ok(s)
+ }
+}
+
+impl event::EventHandler for MainState {
+ fn update(&mut self, _ctx: &mut ggez::Context) -> ggez::GameResult {
+ self.pos_x = self.pos_x % 800.0 + 1.0;
+ Ok(())
+ }
+
+ fn draw(&mut self, ctx: &mut ggez::Context) -> ggez::GameResult {
+ graphics::clear(ctx, [0.1, 0.2, 0.3, 1.0].into());
+
+ let circle = graphics::Mesh::new_circle(
+ ctx,
+ graphics::DrawMode::fill(),
+ na::Point2::new(self.pos_x, 380.0),
+ 100.0,
+ 2.0,
+ graphics::WHITE,
+ )?;
+ graphics::draw(ctx, &circle, (na::Point2::new(0.0, 0.0),))?;
+
+ graphics::present(ctx)?;
+ Ok(())
+ }
+}
+
+pub fn main() -> ggez::GameResult {
+ let cb = ggez::ContextBuilder::new("super_simple", "ggez");
+ let (ctx, event_loop) = &mut cb.build()?;
+ let state = &mut MainState::new()?;
+ event::run(ctx, event_loop, state)
}