Schloool/Boxes

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>


<run id="5ddbf2e11edb0">
var canvas = new Canvas(1);
var requestId = -1;
var boxes;
const SIZE = 40, OFFSET = 10, SPEED_STEP = 4, BOX_AMOUNT = 8;

function Box(yStart, speed) {
  this.x = 0;
  this.y = yStart;
  this.speed = speed;
  this.size = SIZE;
	
  // renders the box with the given specifications to the canvas
  this.render = function() {
    canvas.setColor(0, 0, 0);
    canvas.fillRect(this.x, this.y, this.size, this.size);
  };
}

function init() {
  // init boxes
  boxes = new Array(BOX_AMOUNT);
  for(var i = 0; i < boxes.length; i++)
    boxes[i] = new Box(i * SIZE + OFFSET, (i + 1) * SPEED_STEP, );
}

function loop() {
  tick();
  render();
  setInterval(loop(), 200);
}

function tick() {
  boxes.forEach(function(box) {
    box.x += box.speed;
		
  // if colliding with border, change direction
  if(((box.x + box.size) > canvas.width) || (box.x < 0))
    box.speed *= -1;
  });
}

function render() {
  // render 
  canvas.setColor(255, 255, 255);
  canvas.fillRect(0, 0, 400, 400);
	
  boxes.forEach(function(box) {
    box.render();
  });
}

init();
loop();
</run>

<canvas w=600, h=300> </canvas>