[−][src]Crate rain2d
Simple 2d framework/engine
Provides some utilities to draw basic shapes, might turn into an actual game engine at some point
Math
nalgebra-glm is used as the math library and reexported under the
rain2d::math
namespace
For documentation see the official nalgebra-glm documentation
Example
use std::time::Duration; use rain2d::{ core::*, math::vec2, }; 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(vec2(120, 300), vec2(520, 300), vec2(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(pos) = rain.get_mouse_pos() { println!("Mouse x: {}, Mouse y: {}", pos.x, pos.y); } } } } let mut core = RainCore::init("example app", WIDTH, HEIGHT, true); core.run(&mut ExampleApp {});
Re-exports
pub use nalgebra_glm as math; |
Modules
core | rain2d core functionality |