simple_game_utils/lib.rs
1//! Simple Game Utilities
2//!
3//! # Usage
4//!
5//! ```no_run
6//!# const BYTES: [u8; 7] = [0,0,0,0,0,0,0];
7//!# const TILESET_FILE_CONTENTS: &str = "";
8//!# const TILEMAP_FILE_CONTENTS: &str = "";
9//!# fn main() {
10//!# use ici_files::image::IndexedImage;
11//!# use simple_game_utils::prelude::*;
12//!# let engine = AudioEngine::new().unwrap();
13//!# let duration = 1.0;
14//!# struct Graphics {
15//!# }
16//!# impl Graphics {
17//!# fn draw_indexed_image(&self, pos: (isize,isize), img: &IndexedImage) {}
18//!# }
19//! let mut timing = Timing::new(240);
20//! let mut timer = Timer::new_with_delay(1.0, 2.0); //timer that triggers every second after waiting 2s initially
21//! let mut sound = engine.load_from_bytes(&BYTES, duration).unwrap();
22//! let ici_tileset: IciTileset = ron::from_str(TILESET_FILE_CONTENTS).unwrap();
23//! let tileset = ici_tileset.into_tileset().unwrap();
24//! let tilemap_file: TilemapFile = ron::from_str(TILEMAP_FILE_CONTENTS).unwrap();
25//! let tilemap: Tilemap<IndexedImage> = tilemap_file.into_tilemap(&tileset, (200,200)).unwrap();
26//!
27//! sound.play();
28//! loop {
29//! sound.update(&timing);
30//! if timer.update(&timing) {
31//! break;
32//! }
33//! }
34//! # let graphics = Graphics{};
35//! tilemap.draw(|img, pos| graphics.draw_indexed_image(pos, img));
36//!# }
37//! ```
38
39#[cfg(feature = "controller")]
40pub mod controller;
41pub mod error;
42#[cfg(feature = "prefs")]
43pub mod prefs;
44#[cfg(feature = "sound")]
45pub mod sound_effect;
46pub mod tiles;
47pub mod timing;
48
49pub mod prelude {
50 #[cfg(feature = "controller")]
51 pub use crate::controller::*;
52 pub use crate::error::*;
53 #[cfg(feature = "prefs")]
54 pub use crate::prefs::app_prefs::*;
55 #[cfg(feature = "prefs")]
56 pub use crate::prefs::*;
57 #[cfg(feature = "sound")]
58 pub use crate::sound_effect::*;
59 pub use crate::tiles::prelude::*;
60 pub use crate::timing::*;
61 #[cfg(feature = "sound")]
62 pub use audio_engine::AudioEngine;
63}