topical media & game development

talk show tell print

#js-bounce-images.cfg / cfg



  // =============================== //
  // Bouncing Images                 //
  // v1.1 - Feb 5, 2005              //
  // ------------------------------- //
  // Written by Lloyd Hassell        //
  // Website: lloydhassell.com       //
  // Email: lloydhassell@hotmail.com //
  // =============================== //
  
  // Featured on: Dynamic Drive HTML code library (http://www.dynamicdrive.com)
  
  // INITIALIZATION:
  
  bouncingImages = new Object();
  
  // CONFIGURATION:
  
  bouncingImages.imgCount = 3;
  bouncingImages.imgWidth = 40;
  bouncingImages.imgHeight = 40;
  bouncingImages.imgSrc = 'local/assets/js/superball.gif';
  
  bouncingImages.frameRate = 30;
  
  bouncingImages.minRandomSpeed = 2;
  bouncingImages.maxRandomSpeed = 8;
  
  // MAIN:
  
  bouncingImages.isLoaded = false;
  bouncingImages.dirX = new Array();
  bouncingImages.dirY = new Array();
  bouncingImages.posX = new Array();
  bouncingImages.posY = new Array();
  bouncingImages.speedX = new Array();
  bouncingImages.speedY = new Array();
  var winWidth, winHeight;
  
  if (dyn) var preloadImgObj = loadImg(bouncingImages.imgSrc); 
  
  function loadBouncingImages() {
     if (dyn && !bouncingImages.isLoaded) {
        winWidth = getWinWidth();
        winHeight = getWinHeight();
        for (var layerLoop = 0; layerLoop < bouncingImages.imgCount; layerLoop++) {
           bouncingImages.dirX[layerLoop] = (Math.round(Math.random()) == 0) ? 'left' : 'right';
           bouncingImages.dirY[layerLoop] = (Math.round(Math.random()) == 0) ? 'up' : 'down';
           bouncingImages.posX[layerLoop] = Math.floor(Math.random() * (winWidth - bouncingImages.imgWidth - 1)) + getDocScrollLeft();
           bouncingImages.posY[layerLoop] = Math.floor(Math.random() * (winHeight - bouncingImages.imgHeight - 1)) + getDocScrollTop();
           bouncingImages.speedX[layerLoop] = Math.round(Math.random() * (bouncingImages.maxRandomSpeed - bouncingImages.minRandomSpeed)) + bouncingImages.minRandomSpeed;
           bouncingImages.speedY[layerLoop] = Math.round(Math.random() * (bouncingImages.maxRandomSpeed - bouncingImages.minRandomSpeed)) + bouncingImages.minRandomSpeed;
           var tempLayerObj = addLayer('bouncingImagesLyr' + layerLoop);
           bouncingImages['layerObj' + layerLoop] = tempLayerObj;
           setLayerSize(tempLayerObj,bouncingImages.imgWidth,bouncingImages.imgHeight);
           setLayerClip(tempLayerObj,0,bouncingImages.imgWidth,bouncingImages.imgHeight,0);
           setLayerHTML(tempLayerObj,getImgTag('bouncingImagesImg' + layerLoop,preloadImgObj.src,bouncingImages.imgWidth,bouncingImages.imgHeight,0));
           moveLayerTo(tempLayerObj,bouncingImages.posX[layerLoop],bouncingImages.posY[layerLoop]);
           showLayer(tempLayerObj);
           }
        bouncingImages.isLoaded = true;
        moveBouncingImages();
        }
     }
  
  function moveBouncingImages() {
     for (var layerLoop = 0; layerLoop < bouncingImages.imgCount; layerLoop++) {
        if (bouncingImages.dirX[layerLoop] == 'left') {
           if (bouncingImages.posX[layerLoop] > bouncingImages.speedX[layerLoop]) bouncingImages.posX[layerLoop] -= bouncingImages.speedX[layerLoop];
           else {
              bouncingImages.dirX[layerLoop] = 'right';
              bouncingImages.posX[layerLoop] = 0;
              }
           }
        else if (bouncingImages.dirX[layerLoop] == 'right') {
           if (bouncingImages.posX[layerLoop] + bouncingImages.imgWidth < winWidth - bouncingImages.speedX[layerLoop]) bouncingImages.posX[layerLoop] += bouncingImages.speedX[layerLoop];
           else {
              bouncingImages.dirX[layerLoop] = 'left';
              bouncingImages.posX[layerLoop] = winWidth - bouncingImages.imgWidth;
              }
           }
        if (bouncingImages.dirY[layerLoop] == 'up') {
           if (bouncingImages.posY[layerLoop] > bouncingImages.speedY[layerLoop]) bouncingImages.posY[layerLoop] -= bouncingImages.speedY[layerLoop];
           else {
              bouncingImages.dirY[layerLoop] = 'down';
              bouncingImages.posY[layerLoop] = 0;
              }
           }
        else if (bouncingImages.dirY[layerLoop] == 'down') {
           if (bouncingImages.posY[layerLoop] + bouncingImages.imgHeight < winHeight - bouncingImages.speedY[layerLoop]) bouncingImages.posY[layerLoop] += bouncingImages.speedY[layerLoop];
           else {
              bouncingImages.dirY[layerLoop] = 'up';
              bouncingImages.posY[layerLoop] = winHeight - bouncingImages.imgHeight;
              }
           }
        }
     for (var layerLoop = 0; layerLoop < bouncingImages.imgCount; layerLoop++) moveLayerTo(bouncingImages['layerObj' + layerLoop],bouncingImages.posX[layerLoop] + getDocScrollLeft(),bouncingImages.posY[layerLoop] + getDocScrollTop());
     window.setTimeout('moveBouncingImages()',bouncingImages.frameRate);
     }
  


(C) Æliens 20/2/2008

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.