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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
/*! Small game framework. [Example](https://github.com/shockham/caper/blob/master/examples/simple.rs) of a basis for a game: ``` #[macro_use] extern crate caper; use caper::types::{ RenderItem, Transform, PhysicsType }; use caper::mesh::gen_cube; fn main() { // define some items to be rendered let mut render_items = vec![ RenderItem { vertices: gen_cube(), shader_name: String::from("dist"), instance_transforms: vec![ Transform { active: true, pos: (-0.5, 0.0, -5.0), rot: (0f32, 0f32, 0f32, 1f32), scale: (1f32, 1f32, 1f32), } ], active: true, physics_type: PhysicsType::None, }, ]; // define a vector for potential text items let text_items = Vec::new(); game_loop! { // following are identities for access to the frameworks systems Input => input, Renderer => renderer, CamState => cam_state, RenderItems => render_items, TextItems => text_items, // define a block for start start => { println!("{:?}", cam_state.cam_pos); }, // define block for update update => { input.handle_fp_inputs(&mut cam_state); }, // block for ui rendering ui => { } } } ``` */ #![deny(missing_docs)] #[macro_use] pub extern crate glium; pub extern crate imgui; pub extern crate ncollide; pub extern crate nphysics3d; pub extern crate nalgebra; extern crate glium_text; extern crate noise; extern crate time; extern crate fps_counter; extern crate bincode; extern crate rustc_serialize; extern crate image; extern crate gif; /// A module for rendering items pub mod renderer; /// Utility functions and macros pub mod utils; /// Module for input handing pub mod input; /// Module for dealing with shaders pub mod shader; /// Module for procedurally generated meshes pub mod mesh; /// Rendering post processing effects pub mod posteffect; /// All of the caper types pub mod types; /// Simple collision detection pub mod collision; /// Module for saving and loading data pub mod persist;