-1

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;

       }
4

3 に答える 3

0

わかりました、jquery なしで 1 日を始めないでください。投稿機能を試してください。完全な解決策を提供することはできませんが、鍵は次のとおりです。

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<script>
  function userMove() {
     var data = {
         yourData1: value,
         ...
     }

     $.ajax({
        type: "POST",
        url: your_file.php,
        data: data,
        success: success,
        dataType: dataType
     });
  }
</script>

jquery $.post

于 2013-04-30T00:06:40.863 に答える
0

この例を見てください。

SELECT/FROM/WHERE一般的なクエリ フォームを使用する代わりに、UPDATE/SET/WHEREを使用できます。

于 2013-04-30T00:07:18.567 に答える
0

javascript からユーザーの位置を「取得」する GET 位置変数を PHP で作成することを考えていますが、これが可能かどうかはわかりません。

于 2013-04-30T10:46:56.070 に答える