javascriptとphpを使ってちょっとしたオンラインゲームを作ろうとしています。
ポイントは、ページを更新したくないということです。ちょっと「リアルタイムなゲームプレイ」にしたいのですが、深刻な問題に遭遇しました。データベースは正常に作成されましたが、プレイヤーがマップ上を移動するたびに位置を更新したいと考えています。
プレーヤーが移動するたびに、プレーヤーの位置の値をデータベースから新しい値に変更する、ある種の AJAX/javascript が必要です。ボタン、フォーム、またはその他のページを使用したくありません。プレイヤーの場所を 30 秒ごとに MySQL データベースに更新するスクリプトを作成するための助けが必要です。
プレイヤーの動きを伴う JavaScript はこちら
//player movement here
engine.player.move = function(direction)
{
var index, x, y;
index = x = y = 0;
engine.keyboard.canInput = false;
switch(direction)
{
case 'up': index = 0; y = 1; break;
case 'right': index = 3; x = -1; break;
case 'left': index = 9; x = 1; break;
case 'down': index = 6; y = -1; break;
}
var toX = engine.viewport.x + (engine.screen.tilesX / 2 - 0.5) - x;
var toY = engine.viewport.y + (engine.screen.tilesY / 2 - 0.5) - y;
var toTile = engine.map.get(toX, toY);
if(engine.tile.hasProperty(toTile, 'solid', 1) ||
engine.npc.isNpcAt(toX, toY))
{
engine.keyboard.canInput = true;
}else{
engine.viewport.playerOffsetX = x * Math.ceil(5 / 16 * engine.tileSize);
engine.viewport.playerOffsetY = y * Math.ceil(5 / 16 * engine.tileSize);
setTimeout(engine.player.animate, engine.player.speed / 2);
setTimeout(engine.player.reset, engine.player.speed);
}
engine.player.spriteIndex = index;
engine.draw();
engine.output('player walks ' + toX + 'x' + toY + 'y');
};
これは、mysqlの更新を行いたい場所です
switch(direction)
{
case 'up': index = 0; y = 1; if(Y++){update player Y+1} break;
case 'right': index = 3; x = -1; break;
case 'left': index = 9; x = 1; break;
case 'down': index = 6; y = -1; break;
}