From 200a3798269775891500bd8c5ee85bb14b6355d1 Mon Sep 17 00:00:00 2001 From: e-dt Date: Thu, 30 Dec 2021 00:00:12 +1100 Subject: [PATCH] wow,... --- src/main.rs | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index 72b8c6c..24b1d94 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,10 +4,11 @@ use ggez::{Context, ContextBuilder, GameResult}; struct Apr { rows: i32, - col: i32, + cols: i32, board: Vec>, grid: Mesh, // Your state here... + __TEST_state : usize } fn make_grid(ctx: &mut Context, r: i32, c: i32, board: &[Vec]) -> GameResult { @@ -20,11 +21,7 @@ fn make_grid(ctx: &mut Context, r: i32, c: i32, board: &[Vec]) -> GameResult for row in 0..r { for col in 0..c { builder.rectangle( - if board[row as usize][col as usize] == 0 { - DrawMode::stroke(1.0) - } else { - DrawMode::fill() - }, + DrawMode::fill(), graphics::Rect { x: start_x + (size * col as f32), y: start_y + (size * row as f32), @@ -32,13 +29,14 @@ fn make_grid(ctx: &mut Context, r: i32, c: i32, board: &[Vec]) -> GameResult h: size, }, match board[row as usize][col as usize] { - 0 | 1 => Color::BLACK, + 0 => Color::WHITE, + 1 => Color::BLACK, 2 => Color::RED, - // 3 => Color::ORANGE, + 3 => Color::CYAN, 4 => Color::YELLOW, 5 => Color::GREEN, 6 => Color::BLUE, - // 7 => Color::PURPLE, + 7 => Color::MAGENTA, _ => Color::BLACK, } )?; @@ -64,22 +62,33 @@ impl Apr { let board = make_board(r, c); Apr { rows: r, - col: c, + cols: c, grid: make_grid(_ctx, r, c, board.as_slice()).unwrap(), board: board, + __TEST_state : 0, } } + + fn set_colour(&mut self, ctx : &mut Context, r : usize, c : usize, col : u8) -> GameResult<()> { + self.board[r][c] = col; + self.grid = make_grid(ctx, self.rows, self.cols, self.board.as_slice())?; + Ok(()) + } } impl EventHandler for Apr { fn update(&mut self, _ctx: &mut Context) -> GameResult<()> { // Err(ggez::GameError::CustomError("You done messed up trying to play this game!".to_string())) // Update code here... + let c = self.__TEST_state % 8; + let r = (self.__TEST_state / 8) % 8; + self.set_colour(_ctx, r, c, (self.board[r][c] + 1) % 8)?; + self.__TEST_state += 1; Ok(()) } fn draw(&mut self, ctx: &mut Context) -> GameResult<()> { - graphics::clear(ctx, Color::WHITE); + graphics::clear(ctx, Color::new(0.5, 0.5, 0.5, 1.0)); let drawparams = graphics::DrawParam::new(); graphics::draw(ctx, &self.grid, drawparams)?;