// JavaScript Document\
var bStart = false;
var bVisiable = true;
var timeId = null;
var leftTimeId= null;
var left = 0;
var top = 0;
var score = 0;
var gameTime = 10;//Second
//Start Game
function startGame() {
// alert("game start");
//random position
left = Math.round((Math.random()*525) + pLeft);
top = Math.round((Math.random()*325) + pTop);
if(bVisiable == true) {
document.getElementById("flowImg").style.display = "none";
bVisiable = false;
}
else {
var el = document.getElementById("flowImg");
//debug info
//document.getElementById("x").innerHTML ="value: " + left;
//document.getElementById("y").innerHTML ="value: " + top;
el.style.left = left + "px" ;
el.style.top = top + "px";
el.style.display = "";
bVisiable = true;
//dubug info
//document.getElementById("x").innerHTML += " " +getLeft(el);
//document.getElementById("y").innerHTML +=" " +getTop(el);
}


}
//Game control
function controlGame() {
if(bStart == false) {
timeId = window.setInterval("startGame()", 600);
leftTimeId = window.setInterval("countdown()",1000);
document.getElementById("control").value = "Stop";
bStart = true;
} else {
window.clearInterval(timeId);
window.clearInterval(leftTimeId);
document.getElementById("control").value = "Start";
document.getElementById("leftTime").innerHTML = "";
alert("game over, your score: " + (document.getElementById("score").innerHTML != "" ? document.getElementById("score").innerHTML:0));
document.getElementById("flowImg").style.display = "";
document.getElementById("flowImg").style.left = pLeft;
document.getElementById("flowImg").style.top = pTop;
bStart = false;
}

}
//count number
function add() {
//alert("add");
if(bStart == false)
return;
var score = document.getElementById("score");
var num = score.innerHTML;
if(num != "") {
num  = parseInt(num);
  num++;
score.innerHTML = num;
} else {
score.innerHTML = "1";
}
}
//countdown
function countdown() {
var time = document.getElementById("leftTime");
//alert(time.innerHTML);
if(time.innerHTML != "") {
var newTime = parseInt(time.innerHTML);
if(newTime == 1) {
time.innerHTML = newTime-1;
window.clearInterval(timeId);
window.clearInterval(leftTimeId);
document.getElementById("control").value = "Start";
showstats();
} else {
time.innerHTML = newTime-1;
}
} else {
time.innerHTML = "10";
}

}//get x-axis    
function getTop(e){    
var offset=e.offsetTop;    
if(e.offsetParent!=null) offset+=getTop(e.offsetParent);    
return offset;    
}    
   //get y-axis    
function getLeft(e){    
var offset=e.offsetLeft;    
if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);    
return offset;    

function change1(ele) {
ele.setAttribute("src","images/demon2.gif");
}
function change2(ele) {
ele.setAttribute("src","images/demon1.gif");
}//Show Stats(I don't know why)
     function showstats() {
Msg=window.open("","Demonkills","Width=400,Height=320")
Msg.document.open("text/html")
Msg.document.write("<h2><p>Good Demon huntin'!</p>")
Msg.document.write("<h1><p>You kill ",score," demons")
Msg.document.close()}
为什么showstats() 里面的score 总是零???

解决方案 »

  1.   

    score反正在这里我没看到你赋值
    如果你只是调用了showstats
    当然是0 了
      

  2.   

    function add() {
        //alert("add");
        if(bStart == false)
            return;
        var score = document.getElementById("score");
        var num = score.innerHTML;
        if(num != "") {
            num  = parseInt(num);
             num++;
            score.innerHTML = num;
        } else {
            score.innerHTML = "1";
        }
    }这个score不对
    这样会在函数里面覆盖掉 你定义的全局变量score
    不能改变全局变量score
      

  3.   

    谢谢兄弟了,我搞定了。
    虽然很不科学,我在这个function最好设了一个score1 = num;然后调用了score1。
      

  4.   

    楼主哪里调用的 add()呢?没看到