Update EnvironmentController.js

fixed zoom and generate random walls
This commit is contained in:
BCM28
2023-11-05 00:22:27 +00:00
committed by GitHub
parent e1d2f65547
commit 1c2091502a

View File

@@ -26,7 +26,7 @@ class EnvironmentController extends CanvasController{
var sign = -Math.sign(event.deltaY); var sign = -Math.sign(event.deltaY);
// Restrict scale // Restrict scale
scale = Math.max(0.5, this.scale+(sign*zoom_speed)); scale = Math.min(50, this.scale+(sign*zoom_speed*this.scale));
var cur_top = parseInt($('#env-canvas').css('top')); var cur_top = parseInt($('#env-canvas').css('top'));
var cur_left = parseInt($('#env-canvas').css('left')); var cur_left = parseInt($('#env-canvas').css('left'));
@@ -61,12 +61,17 @@ class EnvironmentController extends CanvasController{
let resolution = 20; let resolution = 20;
Perlin.seed(); Perlin.seed();
for (let r = 0; r < this.env.num_rows; r++) { let num_rows = this.env.grid_map.rows
for (let c = 0; c < this.env.num_cols; c++) { let num_cols = this.env.grid_map.cols
let xval = c/this.env.num_cols*(resolution/this.env.renderer.cell_size*(this.env.num_cols/this.env.num_rows)); // let num_rows = this.env.num_rows
let yval = r/this.env.num_rows*(resolution/this.env.renderer.cell_size*(this.env.num_rows/this.env.num_cols)); // let num_cols = this.env.num_cols
for (let r = 0; r < num_rows; r++) {
for (let c = 0; c < num_cols; c++) {
let xval = c/num_cols*(resolution/this.env.renderer.cell_size*(num_cols/num_rows));
let yval = r/num_rows*(resolution/this.env.renderer.cell_size*(num_rows/num_cols));
let noise = Perlin.get(xval, yval); let noise = Perlin.get(xval, yval);
avg_noise += noise/(this.env.num_rows*this.env.num_cols); avg_noise += noise/(num_rows*num_cols);
if (noise > noise_threshold && noise < noise_threshold + thickness/resolution) { if (noise > noise_threshold && noise < noise_threshold + thickness/resolution) {
let cell = this.env.grid_map.cellAt(c, r); let cell = this.env.grid_map.cellAt(c, r);
if (cell != null) { if (cell != null) {