topical media & game development

talk show tell print

sample-collect-hush-js-waterfall-files-waterfall.js / js



  var ctx;
  var word;
  var canvasWidth;
  var canvasHeight;
  
  var initId                        = 0;
  var clearBackground = false;
  var hideStatics                = true;
  var prog                         = 2;
  var groundBounce        = 0.3
  var ballBounce                = 0.2;
  var ballBounceBias        = 0.4;
  
  function createWorld() {
          var worldAABB = new b2AABB();
          worldAABB.minVertex.Set(-100, -100);
          worldAABB.maxVertex.Set(canvasWidth+100, canvasHeight+100);
          var world = new b2World(worldAABB, new b2Vec2(0, 300), true);
  
          if (prog == 0) {
                  //Obstacles
                  for (var i = 0; i < 20; i++) {
                          b2CreateBox(world, Math.random() * canvasWidth, 200 + Math.random()*canvasHeight, 40+Math.random()*40, 20, true, Math.random()*2);        
                  }
          }
          
          if (prog == 1) {
                  //Landscape
                  for (var i = 0; i < canvasWidth/20; i++){
                          b2CreateBox(world, i*40, canvasHeight, 20, 100+noise(i, 0)*200);        
                  }
          }
          
          if (prog == 2) {
                  //water
                  b2CreateBox(world, 0, 150, 200, 10, true, 0.1);        
                  b2CreateBox(world, canvasWidth, 150, 200, 10, true, -0.1);        
  
                  for (var i = 0; i < (canvasWidth+30)/40; i++){
                          //document.title = (canvasWidth/40)-1;
                          if (i == 0 || i == Math.floor((canvasWidth+30)/40)) {
                                  b2CreateBox(world, -10+i*40, canvasHeight/2, 20, canvasHeight);        
                          } else {
                                  b2CreateBox(world, -10+i*40, canvasHeight, 20, 100+noise(i, 0)*300);        
                          }
                  }
          }        
  
          return world;
  }
  
  function createObject() {
          if (prog == 0 || prog == 1) {
                  b2CreateBox(world, Math.random()*canvasWidth, -20, 20, 20, false, Math.random());
                  setTimeout('box()', 1000);
          } else {
                  var v1 = 5+Math.random()*5;
                  var v2 = 5+Math.random()*5;
                  /*b2CreateBox(world, 40, 120, v1, v1, false, Math.random());
                  b2CreateBox(world, canvasWidth-40, 120, v2, v2, false, Math.random());
  		*/
                  b2CreateBall(world, 30, 130, 4+Math.random()*6, false);
                  b2CreateBall(world, canvasWidth-40, 130, 4+Math.random()*6, false);
                  setTimeout('createObject()', 500);
          }
  }
  
  Event.observe(window, 'load', function() {
          var canvasElm        = $('canvas');
          
          canvasWidth                = canvasElm.width = document.viewport.getWidth();
          canvasHeight        = canvasElm.height = document.viewport.getHeight();
  
          ctx                = canvasElm.getContext('2d');
  
          world        = createWorld();
  
          b2Step();
          setTimeout('createObject()', 500);
  });


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.