1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
#![warn(missing_docs)] //! Simple 2d framework/engine //! //! Provides some utilities to draw basic shapes, //! might turn into an actual game engine at some point //! //! ### Example //! //! ```no_run //! use std::time::Duration; //! //! use rain2d::core::*; //! //! const WIDTH: usize = 640; //! const HEIGHT: usize = 360; //! //! // can be used to store application state //! struct ExampleApp; //! //! impl RainApp for ExampleApp { //! fn on_update(&mut self, rain: &mut RainCore, dt: Duration) { //! // drawing //! rain.fill_triangle(120, 300, 520, 300, 320, 100, WHITE); //! //! // keyboard input //! // gets all keys that are currently down //! if let Some(keys) = rain.get_keys() { //! for key in keys { //! match key { //! Key::Space => println!("Spacebar down"), //! Key::A => println!("A down"), //! _ => (), //! } //! } //! } //! //! // only true on keypress, doesn't repeat //! if rain.key_pressed(Key::Key1) { //! println!("1 pressed"); //! } //! //! // mouse input //! if rain.mouse_button_down(MouseButton::Left) { //! if let Some((x, y)) = rain.get_mouse_pos() { //! println!("Mouse x: {}, Mouse y: {}", x, y); //! } //! } //! } //! } //! //! let mut core = RainCore::init("example app", //! WIDTH, //! HEIGHT, //! true); //! //! core.run(&mut ExampleApp {}); //! ``` pub mod core;