e-dt 4 years ago
parent
commit
fbc7d6f2e9
  1. 11
      src/actor.rs
  2. 16
      src/apr.rs

11
src/actor.rs

@ -1,4 +1,5 @@
use ggez::graphics; use ggez::graphics;
use ggez::Context;
pub enum ActorPosn { pub enum ActorPosn {
BoardPosn { BoardPosn {
@ -20,3 +21,13 @@ pub struct Actor {
pub posn: ActorPosn, pub posn: ActorPosn,
pub behaviour: u8, //index into the behaviours array pub behaviour: u8, //index into the behaviours array
} }
impl Actor {
pub fn new(ctx: &mut Context, img_path: &str, _x: u8, _y: u8, b: u8) -> Actor {
Actor {
image: graphics::Image::new(ctx, img_path).unwrap(),
posn: ActorPosn::BoardPosn { x: _x, y: _y },
behaviour: b,
}
}
}

16
src/apr.rs

@ -49,11 +49,11 @@ impl Apr {
let mut actors: Vec<actor::Actor> = Vec::new(); let mut actors: Vec<actor::Actor> = Vec::new();
for i in 0..r { for i in 0..r {
// white side // white side
actors.push(Apr::make_actor(_ctx, "/pawn.png", i, 0, 0)); actors.push(actor::Actor::new(_ctx, "/pawn.png", i, 0, 0));
} }
for i in 0..r { for i in 0..r {
// black side // black side
actors.push(Apr::make_actor(_ctx, "/pawn2.png", i, c - 1, 0)); actors.push(actor::Actor::new(_ctx, "/pawn2.png", i, c - 1, 0));
} }
Ok(Apr { Ok(Apr {
grid: make_grid(_ctx, r, c, board.board.as_slice())?, grid: make_grid(_ctx, r, c, board.board.as_slice())?,
@ -67,17 +67,9 @@ impl Apr {
}) })
} }
pub fn make_actor(ctx: &mut Context, img_path: &str, _x: u8, _y: u8, b: u8) -> actor::Actor { pub fn set_colour(&mut self, r: usize, c: usize, clr: u8) {
actor::Actor {
image: graphics::Image::new(ctx, img_path).unwrap(),
posn: actor::ActorPosn::BoardPosn { x: _x, y: _y },
behaviour: b,
}
}
pub fn set_colour(&mut self, r: usize, c: usize, col: u8) {
//You should only modify self.board through this method. //You should only modify self.board through this method.
self.board.board[r][c] = col; //Making a getter for self.board would sadly break borrowing in the same way that closest_square_coords does. self.board.board[r][c] = clr; //Making a getter for self.board would sadly break borrowing in the same way that closest_square_coords does.
self.should_update_grid = true; //Similar solutions apply. self.should_update_grid = true; //Similar solutions apply.
} }
} }

Loading…
Cancel
Save