1

HTML5ゲームリソースから1行ずつtxtファイルを読み取ることは可能ですか?(リソース=ゲームプロジェクト内のフォルダーの1つ)このファイルには、ゲームのレベルに関する情報を保持しています。PHP、Ajaxを使用した例のみを見つけましたが、これにはすべてサーバーが必要ですが、サーバーまたはオフラインモードでゲームを実行したいと思います。前もって感謝します。

4

2 に答える 2

2

テンプレートや前処理言語(LESSやCoffeeScriptなど)でよく使用される手法の1つはtype、ブラウザーで認識されない属性を持つスクリプトタグを使用することです。これにより、ブラウザと検索エンジンでは無視されますが、JavaScriptではアクセスできます。

デモ| コードビュー

  <script type="text/mygamelevel" id="level1">
    0010011001111011
    0011011100010
    10101110111101101
  </script>

  <script type="text/javascript">
    var level = document.getElementById("level1").text;
    var lines = level.split("\n");
    for (var i=0; i<lines.length; i++) {
      var line = lines[i];
      if (!line.trim()) continue;

      alert(line);
    }
  </script>

ファイルが優先される場合は、動的に要求できます。これは、 jQueryのget関数を使用した例です。

$.get('levels/level1.txt', function(level) {
    var lines = level.split("\n");
    for (var i=0; i<lines.length; i++) {
      var line = lines[i];
      if (!line.trim()) continue;

      alert(line);
    }
});

コールバック内のコードがいつでも実行されるという保証はありません。そのため、コード内の他の場所ではなく、そこにstart-new-levelコードを配置することをお勧めします。そうしないと、レベル情報がまだダウンロードされているかどうかがわかりません。この問題は、この回答の最初のスニペットに示されているようにデータをインライン化することで回避されます。

于 2013-03-09T10:00:10.993 に答える
1

ブラウザのJavaScriptは、ローカルファイルシステムに直接アクセスすることはできません。

于 2013-03-09T09:54:14.463 に答える