我正在构建一个多人游戏,它使用mysql数据库存储玩家的坐标位置,然后用于显示对手模型。
游戏在客户端使用javascript文件(milktruck.js),然后在服务器端使用php文件(xml_http_request.php)。
当更新数据库信息时,尝试获取javascript变量(存储对手的坐标信息)时,会出现问题。
使用以下代码在php文件中声明javascript变量:
echo "<script> var lla0php = $lla0; </script>";
echo "<script> var lla1php = $lla1; </script>";
echo "<script> var lla2php = $lla2; </script>";
然后在javascript文件中使用,勾选函数:prototype.tick,带:
window['lla0_2']= lla0php;
window['lla1_2']= lla1php;
window['lla2_2']= lla2php;
如何使用新的数据库信息不断更新这些变量?
答案 0 :(得分:0)
Web模型是无状态的,要做到这一点,你将不得不考虑克服这个问题的方法,并且可能考虑编写一个为你处理这个问题的抽象层。
您需要持续轮询或查看其他基于Web的解决方案,这些解决方案允许服务器将数据“推送”回客户端并维持通信的“开放渠道”。这方面的一个例子是您的浏览器中的Google Talk或FaceBook聊天。
答案 1 :(得分:0)
您需要做的是使用ajax。
function requestCoord(){
$.ajax({
url: "your url",
dataType : "json",
type: "GET",
success(val){
//get your php script to echo out a json string
//and it will be in val
window['lla0_2']= val.lla0php;
window['lla1_2']= val.lla1php;
window['lla2_2']= val.lla2php;
}
});
}
setInterval(requestCoord, 1000);
您可以使用html5 sockets.