// 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 总是零???
如果你只是调用了showstats
当然是0 了
//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
虽然很不科学,我在这个function最好设了一个score1 = num;然后调用了score1。