function _createGradientSurface() {
        var background = new CanvasSurface({
        	classes: ['backgroundSurface'],
            size: [window.innerWidth * 1.2, window.innerHeight * 1.2],
            canvasSize: [window.innerWidth * 1.2, window.innerHeight * 1.2]
        });

        var colorCanvas = background.getContext('2d');

        var gradient = colorCanvas.createLinearGradient(
            window.innerWidth * 1.2, //x0
            0,                     //y0
            0,                     //x1
            window.innerHeight * 1.2 //y1
        );

        for (var i = 0; i < this._colorStops.length; i++) {
            gradient.addColorStop(this._colorStops[i].position, this._colorStops[i].color);	
        }

        colorCanvas.fillStyle = gradient;
        colorCanvas.fillRect(0, 0, window.innerWidth * 1.2, window.innerHeight * 1.2);
        this._add(background);
    } 
Ejemplo n.º 2
0
  Timer.every(function() {
    for (var i=0; i < ships.length; i++) {
      ships[i].magnitudeLimit(1);
      ships[i].stateMod.setTransform(ships[i].particle.getTransform());
      ships[i].wraparound();
      // if (ships[i].collision.alive === false) {
      //   resetShip(ships[i]);
      // };
      if (keyState[65] /*&& ships[i].collision.alive*/) {
      ships[i].direction -= Math.PI / 32;
      mainCon.add(ships[i].stateMod).add(ships[i].rotationModifier()).add(ships[i].currentSurface);
      };
      if (keyState[68] /*&& ships[i].collision.alive*/) {
        ships[i].direction += Math.PI / 32;
        mainCon.add(ships[i].stateMod).add(ships[i].rotationModifier()).add(ships[i].currentSurface);
      };
      if (keyState[87] /*&& ships[i].collision.alive*/) {
        ships[i].addVector(0.02);
      };
      if (keyState[82]) {
        sessionStorage.score = scoreboard.score;
        sessionStorage.ships = scoreboard.ships;
        location.reload();
      };
      if (ships[i].eventHandler.explosionTimer > 0) {
          ships[i].eventHandler.explosionTimer -= 1;
          if (ships[i].eventHandler.explosionTimer === 0) {
            scoreboard.ships -=1;
            removeItem(ships[i]);
            sessionStorage.score = scoreboard.score;
            sessionStorage.ships = scoreboard.ships;
            location.reload();
          };
        };

      // allow torpedo fire every 5 frames if torpedos in play < 4
      if (ships[i].torpTimer > 0) {
        ships[i].torpTimer -= 1;
      };
      if ((keyState[76]) && (torpedos.length < 4) && (ships[i].torpTimer === 0)) {
        createTorpedo(ships[i]);
      };

    };

    for (var i=0; i < asteroids.length; i++) {
      asteroids[i].magnitudeLimit(1);
      asteroids[i].stateMod.setTransform(asteroids[i].particle.getTransform());
      asteroids[i].wraparound();
      if (asteroids[i].eventHandler.createDisallow > 0) {
        asteroids[i].eventHandler.createDisallow -= 1;
      };
      if (asteroids[i].eventHandler.explosionTimer > 0) {
        asteroids[i].eventHandler.explosionTimer -= 1;
        if (asteroids[i].eventHandler.explosionTimer === 0) {
          removeItem(asteroids[i]);
          asteroids.splice(i,1);
        };
      };
    };

    for (var i=0; i < torpedos.length; i++) {
      torpedos[i].stateMod.setTransform(torpedos[i].particle.getTransform());
      torpedos[i].wraparound();
      if (torpedos[i].eventHandler.explosionTimer > 0) {
        torpedos[i].eventHandler.explosionTimer -= 1;
        if (torpedos[i].eventHandler.explosionTimer === 0) {
          removeItem(torpedos[i]);
          torpedos.splice(i, 1);
        };
      };
      if (torpedos[i].existanceTimer > 0) {
        torpedos[i].existanceTimer -= 1;
        if (torpedos[i].existanceTimer === 0) {
          removeItem(torpedos[i]);
          torpedos.splice(i,1);
        };
      };
    };

    var ctx = scoreboard.getContext('2d');
    ctx.font = '30px Arial';
    ctx.fillStyle = 'white';
    ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
    ctx.fillText('Score: ' + scoreboard.score.toString() + " Ships: " + (scoreboard.ships -1).toString(),10,50);
  }, 1);