multiple colors for walls
This commit is contained in:
parent
eee63a7350
commit
4620f647ad
|
@ -35,8 +35,8 @@ impl Player {
|
||||||
let dy = other.y - self.pos.y;
|
let dy = other.y - self.pos.y;
|
||||||
let x = dx * rad.cos();
|
let x = dx * rad.cos();
|
||||||
let y = dy * rad.sin();
|
let y = dy * rad.sin();
|
||||||
let distance = x + y;
|
let distance = (x + y).abs();
|
||||||
println!("angle: {}, dx: {}, dy: {}, x; {}, y: {}", self.angle, dx, dy, x, y);
|
// println!("angle: {}, dx: {}, dy: {}, x; {}, y: {}", self.angle, dx, dy, x, y);
|
||||||
assert!(distance.is_sign_positive());
|
assert!(distance.is_sign_positive());
|
||||||
distance
|
distance
|
||||||
}
|
}
|
||||||
|
@ -205,8 +205,11 @@ impl Engine {
|
||||||
if tile == Tile::Wall {
|
if tile == Tile::Wall {
|
||||||
let wall_height = (self.h / (distance * 3.0)).min(self.h);
|
let wall_height = (self.h / (distance * 3.0)).min(self.h);
|
||||||
let wall_color = match pos {
|
let wall_color = match pos {
|
||||||
p if p.x.fract() == 0.0 => [0.2, 0.2, 0.9, 1.0],
|
p if (p.x.trunc() + p.y.trunc()) % 4.0 == 0.0 => [0.2, 0.2, 0.9, 1.0],
|
||||||
_ => [0.2, 0.9, 0.2, 1.0],
|
p if (p.x.trunc() + p.y.trunc()) % 4.0 == 1.0 => [0.4, 0.4, 0.9, 1.0],
|
||||||
|
p if (p.x.trunc() + p.y.trunc()) % 4.0 == 2.0 => [0.6, 0.6, 0.9, 1.0],
|
||||||
|
p if (p.x.trunc() + p.y.trunc()) % 4.0 == 3.0 => [0.7, 0.3, 0.9, 1.0],
|
||||||
|
_ => [1.0, 0.0, 0.0, 1.0],
|
||||||
};
|
};
|
||||||
println!("ray: {}, angle: {}, wall at {:?}, distance: {}", n, ray_angle, pos, distance);
|
println!("ray: {}, angle: {}, wall at {:?}, distance: {}", n, ray_angle, pos, distance);
|
||||||
rectangle(wall_color,
|
rectangle(wall_color,
|
||||||
|
|
Loading…
Reference in a new issue