|
|
@ -1,38 +1,42 @@ |
|
|
|
use ggez::{Context, ContextBuilder, GameResult}; |
|
|
|
use ggez::graphics::{self, Color, Mesh, MeshBuilder, DrawMode}; |
|
|
|
use ggez::event::{self, EventHandler}; |
|
|
|
|
|
|
|
use ggez::graphics::{self, Color, DrawMode, Mesh, MeshBuilder}; |
|
|
|
use ggez::{Context, ContextBuilder, GameResult}; |
|
|
|
|
|
|
|
struct Apr { |
|
|
|
grid : Mesh, |
|
|
|
grid: Mesh, |
|
|
|
// Your state here...
|
|
|
|
} |
|
|
|
|
|
|
|
fn make_grid(ctx : &mut Context, r: i32, c: i32) -> GameResult<Mesh> { |
|
|
|
let start_x : f32 = 20.0; |
|
|
|
let start_y : f32 = 20.0; |
|
|
|
let size : f32 = 20.0; //compile time constants for now
|
|
|
|
let mut start_white : bool = true; |
|
|
|
|
|
|
|
fn make_grid(ctx: &mut Context, r: i32, c: i32) -> GameResult<Mesh> { |
|
|
|
let start_x: f32 = 20.0; |
|
|
|
let start_y: f32 = 20.0; |
|
|
|
let size: f32 = 20.0; //compile time constants for now
|
|
|
|
let mut start_white: bool = true; |
|
|
|
|
|
|
|
let mut builder = MeshBuilder::new(); |
|
|
|
|
|
|
|
|
|
|
|
for row in 0..r { |
|
|
|
let mut colour = start_white; |
|
|
|
for col in 0..c { |
|
|
|
builder.rectangle( |
|
|
|
if colour { DrawMode::stroke(1.0) } else { DrawMode::fill() }, |
|
|
|
graphics::Rect { |
|
|
|
x : start_x + (size * col as f32), |
|
|
|
y : start_y + (size * row as f32), |
|
|
|
w : size, |
|
|
|
h : size |
|
|
|
}, |
|
|
|
Color::BLACK)?; |
|
|
|
colour = !colour; |
|
|
|
} |
|
|
|
start_white = !start_white; |
|
|
|
let mut colour = start_white; |
|
|
|
for col in 0..c { |
|
|
|
builder.rectangle( |
|
|
|
if colour { |
|
|
|
DrawMode::stroke(1.0) |
|
|
|
} else { |
|
|
|
DrawMode::fill() |
|
|
|
}, |
|
|
|
graphics::Rect { |
|
|
|
x: start_x + (size * col as f32), |
|
|
|
y: start_y + (size * row as f32), |
|
|
|
w: size, |
|
|
|
h: size, |
|
|
|
}, |
|
|
|
Color::BLACK, |
|
|
|
)?; |
|
|
|
colour = !colour; |
|
|
|
} |
|
|
|
start_white = !start_white; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
builder.build(ctx) |
|
|
|
} |
|
|
|
|
|
|
@ -40,28 +44,23 @@ impl Apr { |
|
|
|
pub fn new(_ctx: &mut Context) -> Apr { |
|
|
|
// Load/create resources such as images here.
|
|
|
|
Apr { |
|
|
|
grid : make_grid(_ctx, 8, 8).unwrap() |
|
|
|
grid: make_grid(_ctx, 8, 8).unwrap(), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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()))
|
|
|
|
// Err(ggez::GameError::CustomError("You done messed up trying to play this game!".to_string()))
|
|
|
|
// Update code here...
|
|
|
|
Ok(()) |
|
|
|
} |
|
|
|
|
|
|
|
fn draw(&mut self, ctx: &mut Context) -> GameResult<()> { |
|
|
|
graphics::clear(ctx, Color::WHITE); |
|
|
|
let drawparams = graphics::DrawParam::new(); |
|
|
|
let drawparams = graphics::DrawParam::new(); |
|
|
|
|
|
|
|
graphics::draw(ctx, &self.grid, drawparams)?; |
|
|
|
graphics::draw(ctx, &self.grid, drawparams)?; |
|
|
|
// Draw code here...
|
|
|
|
graphics::present(ctx) |
|
|
|
} |
|
|
|