Resize canvas & redraw grid every frame, not that bad
This commit is contained in:
parent
ca540bc4fa
commit
0e30c58ec2
@ -18,7 +18,7 @@ window.onload = function() {
|
||||
|
||||
gui.add(controls, "step_time", 200, 2000).name("step time ms").step(1);
|
||||
gui.add(controls, "fadeout", 0, 20).name("trail fadeout length (0 to disable)").step(1);
|
||||
gui.add(controls, "cell_size", 10, 100).name("cell size").step(1);
|
||||
//gui.add(controls, "cell_size", 10, 100).name("cell size").step(1);
|
||||
gui.addColor(controls, "color").name("guy color");
|
||||
gui.add(controls, "restart_button").name("start again");
|
||||
|
||||
@ -29,7 +29,7 @@ window.onload = function() {
|
||||
var controls = new(function() {
|
||||
this.step_time = 500;
|
||||
this.fadeout = 10;
|
||||
this.cell_size = 30;
|
||||
this.cell_size = 22;
|
||||
this.color = "#FFB000";
|
||||
|
||||
this.restart_button = function() {
|
||||
@ -56,7 +56,9 @@ Number.prototype.mod = function (n) {
|
||||
|
||||
function init_walk() {
|
||||
// Draw a grid of boxes on the canvas
|
||||
draw_grid();
|
||||
setInterval(draw, 20);
|
||||
|
||||
/*
|
||||
|
||||
// Set default values for walker pos and empty the trail
|
||||
// TODO: ACTUAL DEFAULT VALUE AT CENTER.
|
||||
@ -78,7 +80,7 @@ function init_walk() {
|
||||
walker.y_velocity = walker.speed * Math.sin(walker.angle)
|
||||
walker_array.push(walker)
|
||||
}
|
||||
setInterval(paint_canvas, 20);
|
||||
*/
|
||||
}
|
||||
|
||||
function move_walker(walker, possible_directions) {
|
||||
@ -95,32 +97,19 @@ function move_walker(walker, possible_directions) {
|
||||
* Drawing *
|
||||
****************************************************************************/
|
||||
|
||||
function paint_canvas() {
|
||||
/*
|
||||
// Regenerate possible angle list
|
||||
possible_directions = gen_angle_list(4)
|
||||
function draw() {
|
||||
var oldwidth = ctx.canvas.width;
|
||||
var oldheight = ctx.canvas.height;
|
||||
ctx.canvas.width = window.innerWidth;
|
||||
ctx.canvas.height = window.innerHeight;
|
||||
|
||||
// Loop through all walkers, moving & painting accordingly
|
||||
for (var i = 0; i < walker_array.length; i++) {
|
||||
|
||||
current_walker = walker_array[i];
|
||||
|
||||
// If walker hasn't hit the walls yet
|
||||
if (!current_walker.halt) {
|
||||
var prev_x = current_walker.x_position
|
||||
var prev_y = current_walker.y_position
|
||||
ctx.beginPath()
|
||||
ctx.moveTo(prev_x, prev_y)
|
||||
move_walker(current_walker, possible_directions);
|
||||
ctx.strokeStyle = current_walker.color;
|
||||
ctx.lineWidth = current_walker.line_width;
|
||||
ctx.lineTo(current_walker.x_position, current_walker.y_position)
|
||||
ctx.stroke()
|
||||
|
||||
ctx.closePath();
|
||||
if (oldwidth !== ctx.canvas.width || oldheight != ctx.canvas.height) {
|
||||
console.log(`dimensions changed from ${oldwidth}x${oldheight} to ${ctx.canvas.width}x${ctx.canvas.height}`);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
draw_grid();
|
||||
|
||||
// TODO CODE
|
||||
}
|
||||
|
||||
function draw_grid_square(row, col, color, offset) {
|
||||
@ -157,11 +146,9 @@ function draw_grid() {
|
||||
* ON SCRIPT LOAD *
|
||||
****************************************************************************/
|
||||
|
||||
// canvas starts with full width and height of its HTML element
|
||||
// find the canvas
|
||||
var canvas = document.getElementById("walker-canvas")
|
||||
var ctx = canvas.getContext('2d')
|
||||
ctx.canvas.width = document.getElementById("walker-canvas").clientWidth
|
||||
ctx.canvas.height = document.getElementById("walker-canvas").clientHeight
|
||||
|
||||
// set start position of walker and start the random walk
|
||||
var walker_position = {x: 0, y: 0};
|
||||
|
Loading…
x
Reference in New Issue
Block a user