⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 level1.js

📁 LyBBS基于Struts1.3/Ajax的架构
💻 JS
📖 第 1 页 / 共 3 页
字号:

var isIE4=false,isNN4=false;

var baseX=0,baseY=0;
var baseWidth=207,baseMiddle=103,baseBottom=288,baseHeight=308,baseLine=196;
var baseMargin=6,borderLeft=0,borderRight=0;

var bubbleSize=25;
var bubbleStep=20;
var bubbleRadiusSmall=12,bubbleRadiusLarge=13;
var bubbleDistance=23;
var bubbleMax=10,bubbleNormal=8;
var bubbleTableSize=8,bubbleTable=new Array();
var bubbleChecked=0,bubbleTrain=0;
var bubbleX=0,bubbleY=0,bubbleStepX=0,bubbleStepY=0,bubbleUnitX=0.0,bubbleUnitY=0.0;
var bubbleFired=false;
var bubbleNum=0;
var bubbleCount=0;
var bubbleBounce=0;
var bubbleTimer=0;
var bubbleID="";
var bubbleIDNum=0;
var bubbleBonus=100;

var bubbleHammer=8,bubbleMulti=9;
var bubbleMultiCount=0,bubbleMultiX=new Array(),bubbleMultiY=new Array(),bubbleMultiChecked=new Array();

var bubbleDropFinished=true,bubbleLevelStarted=false;

var touchingX=0,touchingY=0,touchedX=0,touchedY=0,lastDimX=0,lastDimY=0;
var deltaLength=new Array(25,25,25,25,25,25,25,25,24,24,23,23,22,22,21,21,20,19,18,17,16,15,13,11,9);
var hitSide=false,hitTop=false,hitBubble=false;

var bubbleLevelMax=0,bubbleLevel=0,bubbleFeedingMax=0,bubbleFeeding=0;

var bubbleImage=new Array();
function loadBubble() {
  for (var i=0; i<bubbleMax; i++) {
    bubbleImage[i]=new Image(bubbleSize,bubbleSize); bubbleImage[i].src=("bubble"+i+".gif");
  }
}
loadBubble();

var bubbleTag1='<img src="',bubbleTag2='" width='+bubbleSize+' height='+bubbleSize+' border=0>';

var pointSize=3,pointRadius=1;
var pointImage=new Image(pointSize,pointSize); pointImage.src="point.gif";

var dotSize=5,dotRadius=2;
var dotImage=new Image(dotSize,dotSize); dotImage.src="dot.gif";

var infoSize=15,infoRadius=7;
var infoImage=new Image(infoSize,infoSize); infoImage.src="info.gif";
var infoX=0,infoY=0;

var clockSize=15,clockRadius=7;
var clockImage=new Image(clockSize,clockSize); clockImage.src="clock.gif";
var clockX=0,clockY=0;

var radianUnit=Math.PI/180;

var meterSize=5,meterRadius=2;
var meterImage=new Image(meterSize,meterSize); meterImage.src="meter.gif";
var meterTimer=0,meterSlice=8,meterCenter=2,meterStep=2;
var meterOffset=new Array();

var gunX=0,gunY=0;
var gunAngleStep=3,gunAngleSlice=180/gunAngleStep,gunAngleCenter=gunAngleSlice/2,gunAngles=new Array();
var gunOffset=new Array(Math.ceil(-bubbleSize*8/3),Math.ceil(-bubbleSize*4/3),0,Math.floor(bubbleSize*4/3),Math.floor(bubbleSize*8/3));
var gunLevelOffset=0;
var gunPointMax=5,gunPoint=new Array(57,47,37,27,17);
var gunPointEnd=67,gunPointBegin=17;
var gunMargin=gunPointBegin+dotRadius;
var gunMoveDirection=1;
var gunAngle=gunAngleCenter,gunAngleBegin=0,gunAngleEnd=0;
var gunDirection=0;
var gunTimer=0;

var layerCount=-1;
var layerStatus=new Array();
var layerDrop=new Array();
var layerStep=new Array();
var layerTimer=0;
var layerString1='<div id="',layerString2='" style="position:absolute; top:'+(-bubbleSize)+'; left:'+(-bubbleSize)+'; width:'+bubbleSize+'; height:'+bubbleSize+'; visibility:visible; z-index:3;"></div>'

var numberWidth=10,numberHeight=15;
var numbers=new Array();
function loadNumber() {
  for (var i=0; i<10; i++) {
    numbers[i]=new Image(numberWidth,numberHeight); numbers[i].src=(""+i+".gif");
  }
}
loadNumber();

var numberX=0,numberY=0;
var numberPosition=new Array();
var scoreSize=4;
var gameScoreNumber=0,highScoreNumber=1;
var numberDigit=new Array(new Array(new Array(0,0),new Array(0,0),new Array(0,0),new Array(0,0)),new Array(new Array(0,0),new Array(0,0),new Array(0,0),new Array(0,0)));
var numberShown=new Array(new Array(1,1,1,1),new Array(1,1,1,1));
var numberID="number",numberCount=0;
var numberTag1= '<table align=center width='+numberWidth+' height='+numberHeight+' cellpadding=0 cellspacing=0 border=0><tr><td align=left valign=top><img src="',numberTag2='" width='+numberWidth+' height='+numberHeight+' border=0></td></tr></table>';

var highScore=0,gameScore=0;

var infoWindow=null;

function showInformation() {
  if (infoWindow==null)
    infoWindow=window.open("info.html","infoWindow","width=480,height=450,titlebar=1")
  else if (infoWindow.closed)
    infoWindow=window.open("info.html","infoWindow","width=480,height=450,titlebar=1")
  else
    infoWindow.focus();
}

function moveMeter() {
  meterStep=(meterStep>0) ? meterStep-1 : meterSlice-1;
  moveLayerTo("meter",clockX+meterOffset[meterStep].x-meterRadius,clockY-meterOffset[meterStep].y-meterRadius);

  if (meterStep==meterCenter) {
    if (!bubbleFired)
      fireBubble();
  }
  else
    meterTimer=setTimeout("moveMeter()",bubbleControls[bubbleLevel][2]);
}

function restoreMeter() {
  meterStep=meterCenter;
  moveLayerTo("meter",clockX-meterRadius,clockY-clockRadius-meterRadius);
}

function newMeter(meterIndex) {
  this.x=Math.round(Math.cos(meterIndex*45*radianUnit)*clockRadius);
  this.y=Math.round(Math.sin(meterIndex*45*radianUnit)*clockRadius);
}

function setMeter() {
  for (var i=0; i<meterSlice; i++)
    meterOffset[i]=new newMeter(i);
}

function newAngle(angleIndex) {
  this.x=Math.cos(angleIndex*gunAngleStep*radianUnit);
  this.y=Math.sin(angleIndex*gunAngleStep*radianUnit);
}

function setAngle() {
  for (var i=0; i<gunAngleSlice; i++)
    gunAngles[i]=new newAngle(i);
}

function setLayer() {
  showLayer("tableb",baseY-baseMargin,baseX-baseMargin,baseWidth+baseMargin*2,baseHeight+baseMargin*2,1,'<table width='+(baseWidth+baseMargin*2)+' height='+(baseHeight+baseMargin*2)+' border=0 cellpadding=0 cellspacing=0 bgcolor=#C0C0C0 ><tr><td>&nbsp;</td></tr></table>');
  showLayer("tablef1",baseY,baseX,baseWidth,baseLine,2,'<table width='+baseWidth+' height='+baseLine+' border=0 cellpadding=0 cellspacing=0 bgcolor=#000000 background=02.gif><tr align=center valign=middle><td>&nbsp;</td></tr></table>');
  showLayer("tablef2",baseY+baseLine+1,baseX,baseWidth,baseHeight-(baseLine+1),2,'<table width='+baseWidth+' height='+(baseHeight-(baseLine+1))+' border=0 cellpadding=9 cellspacing=0 bgcolor=#000000 background=04.gif ><tr align=center valign=top><td>&nbsp;</td></tr></table>');
  showLayer("point1",gunY-gunPoint[0]-pointRadius,gunX-pointRadius,pointSize,pointSize,5,'<img src="'+pointImage.src+'" width='+pointSize+' height='+pointSize+' border=0 align=top>');
  showLayer("point2",gunY-gunPoint[1]-pointRadius,gunX-pointRadius,pointSize,pointSize,5,'<img src="'+pointImage.src+'" width='+pointSize+' height='+pointSize+' border=0 align=top>');
  showLayer("point3",gunY-gunPoint[2]-pointRadius,gunX-pointRadius,pointSize,pointSize,5,'<img src="'+pointImage.src+'" width='+pointSize+' height='+pointSize+' border=0 align=top>');
  showLayer("point4",gunY-gunPoint[3]-pointRadius,gunX-pointRadius,pointSize,pointSize,5,'<img src="'+pointImage.src+'" width='+pointSize+' height='+pointSize+' border=0 align=top>');
  showLayer("point5",gunY-gunPoint[4]-pointRadius,gunX-pointRadius,pointSize,pointSize,5,'<img src="'+pointImage.src+'" width='+pointSize+' height='+pointSize+' border=0 align=top>');
  showLayer("dot1",gunY-dotRadius,gunX-gunPointBegin-dotRadius,dotSize,dotSize,5,'<img src="'+dotImage.src+'" width='+dotSize+' height='+dotSize+' border=0 align=top>');
  showLayer("dot2",gunY-dotRadius,gunX+gunPointBegin-dotRadius,dotSize,dotSize,5,'<img src="'+dotImage.src+'" width='+dotSize+' height='+dotSize+' border=0 align=top>');
  showLayer("info",infoY-infoRadius,infoX-infoRadius,infoSize,infoSize,3,'<a href="http://www.5757.net" target="_blank"><img src="'+infoImage.src+'" width='+infoSize+' height='+infoSize+' border=0 align=top alt="5757.net/bbs 精彩社区"></a>');
  showLayer("clock",clockY-clockRadius,clockX-clockRadius,clockSize,clockSize,3,'<img src="'+clockImage.src+'" width='+clockSize+' height='+clockSize+' border=0 align=top>');
  showLayer("meter",clockY-clockRadius-meterRadius,clockX-meterRadius,meterSize,meterSize,3,'<img src="'+meterImage.src+'" width='+meterSize+' height='+meterSize+' border=0 align=top>');
  showLayer("clock2",clockY-clockRadius-25,clockX-clockRadius,200,clockSize,3,'<span style="FONT-SIZE: 9pt"><font color=#E8E8E8>游戏控制:J(左)、K(射)、L(右)');
   showLayer("clock2",clockY-clockRadius+82,clockX-18,200,25,3,'<EMBED SRC= "bubbleb.mid" loop="-1" WIDTH=46 HEIGHT=25>');
    showLayer("info2",gunY-15,infoX-62,32,32,3,'<img src=23.gif>');
  showLayer("info3",gunY-15,infoX-145,32,32,3,'<img src=22.gif>');
}

function showLayer(_layerID,_top,_left,_width,_height,_zIndex,_layerHTML) {
  if (isIE4) {
    document.body.insertAdjacentHTML("BeforeEnd",('<div id="'+_layerID+'" style="position:absolute; top:'+_top+'; left:'+_left+'; width:'+_width+'; height:'+_height+'; clip:rect(0px,'+_width+'px,'+_height+'px,0px); visibility:visible; z-index:'+_zIndex+';">'+_layerHTML+'</div>'));
  }
  else {
    document.layers[_layerID]=new Layer(_width);
    with (document.layers[_layerID]) {
      height=_height;
      top=_top; left=_left;
      clip.top=0; clip.left=0; clip.bottom=_height; clip.right=_width;
      zIndex=_zIndex;
      document.open("text/html"); document.writeln(_layerHTML); document.close();
      visibility="show";
    }
  }
}

function indexLayer(layerID,layerIndex) {
  if (isIE4)
    document.all[layerID].style.zIndex=layerIndex
  else
    document.layers[layerID].zIndex=layerIndex;
}

function getLayerTop(layerID) {
  if (isIE4)
    return document.all[layerID].style.pixelTop
  else
    return document.layers[layerID].top;
}

function moveLayerBy(layerID,x,y) {
  if (isIE4) {
    document.all[layerID].style.pixelLeft+=x;
    document.all[layerID].style.pixelTop+=y;
  }
  else {
    document.layers[layerID].moveBy(x,y);
  }
}

function moveLayerTo(layerID,x,y) {
  if (isIE4) {
    document.all[layerID].style.pixelLeft=x;
    document.all[layerID].style.pixelTop=y;
  }
  else {
    document.layers[layerID].moveTo(x,y);
  }
}

function drawLayer(layerID,layerHTML) {
  if (isIE4) {
    document.all[layerID].innerHTML=layerHTML;
  }
  else {
    with (document.layers[layerID].document) {
      open("text/html"); writeln(layerHTML); close();
    }
  }
}

function getLayerID(layerNum) { return "bubble"+layerNum+""; }
function randomBubble() { return Math.floor(Math.random()*bubbleMax); }

function nextBubble() {
  if (bubbleFeeding<bubbleFeedingMax) {
    bubbleNum=bubbleFeedings[bubbleLevel][bubbleFeeding];
    bubbleFeeding++;
  }
  else
    bubbleNum=randomBubble();

  bubbleIDNum=newBubble(bubbleNum)
  bubbleID=getLayerID(bubbleIDNum);
  bubbleFired=false;

  if (bubbleLevelStarted && bubbleControls[bubbleLevel][2]>0)
    meterTimer=setTimeout("moveMeter()",bubbleControls[bubbleLevel][2]);
}

function fireBubble() {
  if (!bubbleFired) {
    clearTimeout(meterTimer);
    restoreMeter();

    bubbleX=gunX+gunLevelOffset; bubbleY=gunY;

    bubbleUnitX=gunAngles[gunAngle].x; bubbleUnitY=gunAngles[gunAngle].y;
    bubbleStepX=bubbleStep*bubbleUnitX; bubbleStepY=bubbleStep*bubbleUnitY;
    bubbleFired=true;
    bubbleBounce=0;
    bubbleLevelStarted=true;

    getHit();

    moveBubble();
  }
}

function getBubble() {
  var layerLength=layerStatus.length;
  var layerNum=-1;
  var bubbleLayer="";
  var layerID="";

  for (var i=0; i<layerLength; i++)
    if (layerStatus[i]) {
      layerNum=i;
      break;
    }

  if (layerNum<0) {
    layerNum=++layerCount;
    layerID=getLayerID(layerNum);

    if (isIE4) {
      bubbleLayer=layerString1+layerID+layerString2;
      document.body.insertAdjacentHTML("BeforeEnd",bubbleLayer);
    }
    else {
      document.layers[layerID]=new Layer(bubbleSize);
      with (document.layers[layerID]) {
        height=bubbleSize;
        top=-bubbleSize; left=-bubbleSize;
        visibility="show";
        zIndex=3;
      }
    }
  }

  layerStatus[layerNum]=false;
  layerDrop[layerNum]=false;
  layerStep[layerNum]=0;

  return layerNum;
}

function clearCheck() {
  bubbleChecked=0;
  bubbleTrain=0;
  bubbleMultiCount=0;

  for (var i=0; i<bubbleTableSize; i++)
    for (var j=0; j<=bubbleTableSize; j++) {
      bubbleTable[i][j].checked=false;

      if (bubbleTable[i][j].bubbleNum==bubbleMulti) {
        bubbleMultiX[bubbleMultiCount]=i;
        bubbleMultiY[bubbleMultiCount]=j;
        bubbleMultiChecked[bubbleMultiCount]=false;
        bubbleMultiCount++;
      }
    }
}

function centralizeGun() {
  gunDirection=0;
  gunAngle=gunAngleCenter;
  if (gunAngle>gunAngleEnd || gunAngle<gunAngleBegin)
    gunAngle=gunAngleBegin;
  gunX=baseX+baseMiddle; gunY=baseY+baseBottom;
}

function gameStart() {
  if (numberCount==0) {
    if (highScore<gameScore) {
      highScore=gameScore;
      roundScore(highScoreNumber);
    }

    gameScore=0;
    bubbleCount=0;
    bubbleLevel=0;
    bubbleFired=false;

    levelStart();
  }
  else
    setTimeout("gameStart()",150);
}

function clearScore() {
  if (bubbleDropFinished) {
    clearNumber();
    gameStart();
  }
  else
    setTimeout("clearScore()",150);
}

function clearTable() {
  if (numberCount==0) {
    clearOnBoard();
    cutBubble();
    clearTimeout(layerTimer);
    setTimeout("dropBubble();clearScore();",1500);
  }
  else
    setTimeout("clearTable()",150);
}

function holdOn() {
  if (bubbleDropFinished && numberCount==0)
    clearTable()
  else
    setTimeout("holdOn()",150);
}

function levelFinished() {
  eventRelease();
  clearTimeout(gunTimer);
  clearTimeout(meterTimer);
  restoreMeter();
}

function levelStart() {
  if (bubbleLevel<bubbleLevelMax)
    showLevel()
  else
    gameWon();
}

function gameWon() {
  alert("恭喜!\n\n你已全部过关!");
  gameOver();
}

function gameOver() {
  levelFinished();
  holdOn();
}

function checkOnBoard(x,y) {
  bubbleTable[x][y].onBoardChecked=true;

  if (bubbleTable[x][y].checked)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -