我正在编写一个基于网络的游戏,玩家在7x7网格上移动。目前,移动按钮调用/action/move/up风格的PHP url,更新数据库,然后重新加载游戏页面以反映新玩家的位置。
我希望能够让玩家点击移动,并使用JQuery tweens在不刷新页面的情况下移动玩家代币。我不确定的是,我希望这能更新服务器,然后锁定移动按钮。然后JS将调用一两个URL,该URL将为页面上的几个变量返回新值,并检查移动是否成功。如果是,移动按钮将解锁,并允许玩家再次移动。
我想象的伪代码:
On Click (Move Up)
{
if(ReadyToMove)
{
Tween(ship, old position, new position)
ReadyToMove = 0
Call MoveDone
}
}
MoveDone
{
ReadyToMove = Url('../movecheck/movement/' . current position .)
/* this url would return either 1 or 0 depending on if db xy matches given xy */
if(!ReadyToMove)
{ current position = old position; display error(movefail) }
}
我实际上是如何做到这一点的?
查看$.ajax()
:
$.ajax({
method: 'POST',
url: ':./movecheck/movement/'
data: /* an object containing data key/value pairs */,
dataType: 'json',
success: function(resp) {
/* do stuff after the response from the server has been received */
}
});
要获得正确的resp
对象,只需echo json_encode(...);
,其中...
是包含数据的关联数组或stdClass对象,例如array('canMove' => true)