Display simple window
This commit is contained in:
		
						commit
						3106b01f3f
					
				
					 3 changed files with 78 additions and 0 deletions
				
			
		
							
								
								
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
/target/
 | 
			
		||||
**/*.rs.bk
 | 
			
		||||
							
								
								
									
										7
									
								
								Cargo.toml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Cargo.toml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
[package]
 | 
			
		||||
name = "rustenstein"
 | 
			
		||||
version = "0.1.0"
 | 
			
		||||
authors = ["Fabien Freling <public@ffreling.com>"]
 | 
			
		||||
 | 
			
		||||
[dependencies]
 | 
			
		||||
piston_window = "0.70.0"
 | 
			
		||||
							
								
								
									
										69
									
								
								src/main.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								src/main.rs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,69 @@
 | 
			
		|||
extern crate piston_window;
 | 
			
		||||
 | 
			
		||||
use piston_window::*;
 | 
			
		||||
 | 
			
		||||
enum Tile {
 | 
			
		||||
    Empty,
 | 
			
		||||
    Wall,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct Position {
 | 
			
		||||
    x: f64,
 | 
			
		||||
    y: f64,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct Player {
 | 
			
		||||
   pos: Position,
 | 
			
		||||
   angle: f64,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
fn main() {
 | 
			
		||||
    let mut window: PistonWindow =
 | 
			
		||||
        WindowSettings::new("Rustenstein", [640, 480])
 | 
			
		||||
        .exit_on_esc(true)
 | 
			
		||||
        .resizable(false)
 | 
			
		||||
        .build().unwrap();
 | 
			
		||||
 | 
			
		||||
    let level: [Tile; 5 * 5] = [
 | 
			
		||||
        Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall,
 | 
			
		||||
        Tile::Wall, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Wall,
 | 
			
		||||
        Tile::Wall, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Wall,
 | 
			
		||||
        Tile::Wall, Tile::Empty, Tile::Empty, Tile::Empty, Tile::Wall,
 | 
			
		||||
        Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall, Tile::Wall,
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    let mut player: Player;
 | 
			
		||||
    player.pos.x = 2.0;
 | 
			
		||||
    player.pos.y = 2.0;
 | 
			
		||||
    player.angle = 0.0;
 | 
			
		||||
 | 
			
		||||
    while let Some(event) = window.next() {
 | 
			
		||||
        let window_size = window.size();
 | 
			
		||||
        let w = window_size.width as f64;
 | 
			
		||||
        let h = window_size.height as f64;
 | 
			
		||||
 | 
			
		||||
        window.draw_2d(&event, |context, graphics| {
 | 
			
		||||
            clear([1.0; 4], graphics);
 | 
			
		||||
 | 
			
		||||
            rectangle([1.0, 0.0, 0.0, 1.0], // red
 | 
			
		||||
                      [0.0, 0.0, 100.0, 100.0],
 | 
			
		||||
                      context.transform,
 | 
			
		||||
                      graphics);
 | 
			
		||||
 | 
			
		||||
            // Ceiling
 | 
			
		||||
            let ceiling_color = [0.3, 0.3, 0.3, 1.0];
 | 
			
		||||
            rectangle(ceiling_color,
 | 
			
		||||
                      [0.0, 0.0, w, h / 2.0],
 | 
			
		||||
                      context.transform,
 | 
			
		||||
                      graphics);
 | 
			
		||||
 | 
			
		||||
            // Floor
 | 
			
		||||
            let floor_color = [0.5, 0.5, 0.5, 1.0];
 | 
			
		||||
            rectangle(floor_color,
 | 
			
		||||
                      [0.0, h / 2.0, w, h / 2.0],
 | 
			
		||||
                      context.transform,
 | 
			
		||||
                      graphics);
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue