3

HTML5でゲームを書きました。ローカルでは、次を実行した場合にのみ機能します。

python -m SimpleHTTPServer

そして、私は開きlocalhost:8000ます。そのため、大量の .html および .js ファイルだけでは機能しません。ゲームをオンラインにしたいのですが、この Github (Pages) は問題外です。動作しないからです。

これは、サーバーが必要なコードの一部です ( localhost:8000/res/App Engine では機能しないことは認識しています。アドレスを変更する必要があります)。

var mapFile = new XMLHttpRequest();
var self = this;
mapFile.open("GET", "http://localhost:8000/res/map" + mapNumber.toString() + ".txt", true);

mapFile.onreadystatechange = function() {
  if (mapFile.readyState === 4) {
    if (mapFile.status === 200) {
      self.lines = mapFile.responseText.split("\n");
      self.loadTilesFromLines();
    }
  }
};

mapFile.send(null);

それで、Google App Engine が動くと聞きました。それは Python をサポートし、非常に人気があります。今、私は彼らがドキュメントに持っているようなものは必要ありません (これはかなりよく書かれています):

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, webapp2 World!')

app = webapp2.WSGIApplication([('/', MainPage)],
                              debug=True)

index.html必要なのは、 onを開くことができる SimpleHTTPServer だけですmy-app.appspot.com

私は例を試して実行しましたが、ブラウザを強制的に開いindex.htmlたりsrc/res/.

そのため、ここで達成しようとしていることが Google App Engine でサポートされているかどうかさえわかりません。ドキュメントは、Python を使用するアプリケーションの構築に焦点を当てているだけで、Python で必要だったのは SimpleHTTPServer だけでした。これは、App Engine では必要ないと思います。

4

1 に答える 1

3

はい、ここで達成しようとしていることは非常に実行可能です。静的ファイルを提供したいだけなので、非常に簡単で、Python コードを含める必要はありません。

次の構造があるとします。

└── my-game
    ├── app.yaml
    └── static
        ├── index.html
        ├── js
        │   └── script.js
        └── res
            └── map.txt

これapp.yamlは次のようになります。

application: my-app
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:

- url: /
  static_files: static/index.html
  upload: static/index.html

- url: /
  static_dir: static/

Google App Engine SDKをインストールすると(まだインストールしていない場合)、dev_appserver.py端末からコマンドを実行できるようになります。上記の構造がある場合は、次を使用して実行してみてください。

$ dev_appserver.py /path/to/my-game

すべてが順調に進んだ場合は、index.htmlon http://localhost:8080map.txtonが表示http://localhost:8080/res/map.txtされ、残りを把握できるはずです。

python -m SimpleHTTPServerディレクトリ内からを使用してアプリケーションを実行し、staticでテストすることもできますlocalhost:8000

于 2013-02-04T09:52:43.753 に答える