From 4dbfbc6d68516db3e90114b78c291c8a1c0eb732 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Thu, 15 Feb 2018 22:56:08 +0200 Subject: Initial commit, sin-bug --- src/main.rs | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/main.rs (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..eedf9f4 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,50 @@ +extern crate gate; +extern crate ogg_sys; + + +use gate::{App, Audio}; +use gate::app_info::AppInfo; +use gate::input::{KeyEvent, KeyCode}; +use gate::renderer::{Renderer, Affine}; + +mod asset_id { include!(concat!(env!("OUT_DIR"), "/asset_id.rs")); } +use asset_id::{AssetId, SpriteId, TileId, MusicId, SoundId}; + +struct BugBasherGame { + bug_pos: (f64, f64) +} + +impl App for BugBasherGame { + fn start(&mut self, _audio: &mut Audio) { + } + + fn advance(&mut self, seconds: f64, _audio: &mut Audio) -> bool { + self.bug_pos.0 = (self.bug_pos.0 + 150. * seconds) % 1000.; + self.bug_pos.1 = (self.bug_pos.0 / 150.).sin() * 500.; + + true + } + + fn input(&mut self, evt: KeyEvent, key: KeyCode, _audio: &mut Audio) -> bool { + true + } + + fn render(&mut self, renderer: &mut Renderer) { + renderer.clear((255,255,255)); + { // drawing sprites + let mut renderer = renderer.sprite_mode(); + let camera = &Affine::translate(-500., 0.); + renderer.draw( + &camera.pre_translate(self.bug_pos.0, self.bug_pos.1), + SpriteId::Bug + ); + } + } +} + +fn main() { + let info = AppInfo::with_app_height(1000.).title("Bug Basher").build(); + gate::run(info, BugBasherGame { + bug_pos: (400., 0.) + }); +} -- cgit v1.2.3