X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcore%2Flevel.rs;h=087af3a8f036926137d30739ca6988f0e6dc7fa8;hb=3fd8761bc3123ed0de1c5416c7efbbb931257248;hp=65e74ffcafb86fc45e71d080edb59d5cc7e2ea2a;hpb=c80ba7f72596437b28540f463b952e6dcbce6295;p=kaka%2Frust-sdl-test.git diff --git a/src/core/level.rs b/src/core/level.rs index 65e74ff..087af3a 100644 --- a/src/core/level.rs +++ b/src/core/level.rs @@ -1,5 +1,6 @@ use common::Point2D; use core::render::Renderer; +use noise::{NoiseFn, OpenSimplex, Seedable}; use rand::Rng; use sprites::SpriteManager; @@ -8,14 +9,13 @@ use sprites::SpriteManager; #[derive(Default)] pub struct Level { pub gravity: Point2D, - pub ground: f64, // just to have something pub grid: Grid, iterations: u8, } impl Level { - pub fn new(gravity: Point2D, ground: f64) -> Self { - Level { gravity, ground, grid: Grid::generate(10), iterations: 10 } + pub fn new(gravity: Point2D) -> Self { + Level { gravity, grid: Grid::generate(10), iterations: 10 } } pub fn regenerate(&mut self) { @@ -39,8 +39,6 @@ impl Level { } pub fn render(&mut self, renderer: &mut Renderer, _sprites: &SpriteManager) { - let w = renderer.viewport().0 as i32; - renderer.canvas().set_draw_color((64, 64, 64)); let size = self.grid.cell_size; for x in 0..self.grid.width { @@ -50,12 +48,6 @@ impl Level { } } } - - for i in 1..11 { - let y = (i * i - 1) as i32 + self.ground as i32; - renderer.canvas().set_draw_color((255 - i * 20, 255 - i * 20, 0)); - renderer.canvas().draw_line((0, y), (w, y)).unwrap(); - } } } @@ -100,7 +92,6 @@ impl Grid { #[allow(dead_code)] fn simplex_noise(&mut self) { - use noise::{NoiseFn, OpenSimplex, Seedable}; let noise = OpenSimplex::new().set_seed(std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap().as_secs() as u32); self.set_each(|x, y| noise.get([x as f64 / 12.0, y as f64 / 12.0]) > 0.055, 1); } @@ -108,7 +99,10 @@ impl Grid { #[allow(dead_code)] fn random_noise(&mut self) { let mut rng = rand::thread_rng(); - self.set_each(|_x, _y| rng.gen_range(0, 100) > 55, 1); + let noise = OpenSimplex::new().set_seed(std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap().as_secs() as u32); + self.set_each(|_x, _y| rng.gen_range(0, 100) > (45 + (150.0 * noise.get([_x as f64 / 40.0, _y as f64 / 10.0])) as usize), 1); // more horizontal platforms + // let w = self.width as f64; + // self.set_each(|_x, _y| rng.gen_range(0, 100) > (45 + ((15 * _x) as f64 / w) as usize), 1); // opens up to the right } #[allow(dead_code)]