rust_snake/game/food/
mod.rs1use opengl_graphics::GlGraphics;
2use piston::input::RenderArgs;
3
4use super::snake::Snake;
5
6pub struct Food {
7 pub x: u32,
8 pub y: u32,
9}
10
11impl Food {
12 pub fn update(&mut self, s: &Snake) -> bool {
14 let front = s.snake_parts.front().unwrap();
15 front.0 == self.x && front.1 == self.y
16 }
17
18 pub fn render(&mut self, gl: &mut GlGraphics, args: &RenderArgs, width: u32) {
19 const RED: [f32; 4] = [0.92, 0.10, 0.14, 1.0];
20
21 let x = self.x * width;
22 let y = self.y * width;
23
24 let square = graphics::rectangle::square(x as f64, y as f64, width as f64);
25
26 gl.draw(args.viewport(), |c, gl| {
27 let transform = c.transform;
28
29 graphics::rectangle(RED, square, transform, gl)
30 });
31 }
32}