1

我正在创建一个关于足球的浏览器游戏,它有一个计数器。每次计数器达到 0(从 10 分钟开始)时,您都可以踢球并进球。发生的情况是,如果您更改选项卡或在同一页面上停留太久(没有刷新或转到网站的其他页面),计数器将冻结/停止。如果您从其他选项卡返回(返回到游戏选项卡),计数器将解冻(但它会出现错误,并且它会从“错误时间”继续,当您不在游戏选项卡时暂停的时间) .

基本上就是这样。我想要的是即使您正在浏览另一个选项卡(或者如果您不刷新页面),计数器也能正常工作。

我的代码如下:

<?php

ob_start();


$Atempo_permitido = 600; // tempo em segundos até redirecionar


$Atempo_atual = mktime(date("H:i:s"));
if($_COOKIE['ACookie_countdown']=="") {
$Atempo_entrada = mktime(date("H:i:s"));
$Atempo_cookie = '3600'; // em segundos
setcookie("ACookie_countdown", "$Atempo_entrada", time()+86400*365);
} else {
$Atempo_gravado = $_COOKIE['ACookie_countdown'];
$Atempo_gerado = $Atempo_atual-$Atempo_gravado;
$Afim = $Atempo_permitido-$Atempo_gerado;
if($Afim <= 0) {
echo "tempo esgotado";
} else {
//echo $fim;
}
}
?>
<script language="Javascript" type="text/javascript">
var Asegs = '<?php if($Afim=="") { echo $Atempo_permitido+1; } else { echo "$Afim";    }     ?>';
var Ats = Asegs*10;
Atuw1();
function Atuw1(){
Asegs = parseInt(Ats / 10);
Asegs = Asegs % 3600;
Aminutes = parseInt(Asegs / 60);
Asegs = Asegs % 60;
if(Ats>0){
document.getElementById("Avalor").innerHTML = "Tempo restante: " + "00" + ":<?php         if($Afim <=540){echo "0";}?>" + Aminutes + ":" + Asegs + "h";
Ats = Ats-1;
setTimeout("Atuw1()", 100)
} else {
document.getElementById("Adiv1").innerHTML = 'Você já pode chutar!';
location.href='index.php?menu=gol';
}
}
</script>
<!-- BLOCO 1 //-->
<body onLoad="Atuw1();Btuw1();Ctuw1();Dtuw1();Etuw1();">
<div id="Avalor"></div>
<div id="Adiv1"></div>

如果你们能告诉我一些关于如何完成这项工作的信息。

4

0 回答 0