Meteorite で Meteor 0.6.3 を使用しています。マルチプレイヤーに Meteor を使用する Three.js を使用してゲームを開発しようとしています。完全なコードはこちら。Atmosphere パッケージhereを使用してみましたが、次のようになります。
ReferenceError: THREE が定義されていません
私の回避策は、テンプレート ファイルのヘッダーに Three.js を含めることでした。これは、クライアントが起動するまで Three.js 関数を呼び出さない場合に機能します。プロトタイプを使用して味方クラスを定義しようとしたときに問題が発生しました。次のようなコードがありました:
var Enemy = function() {
this.mesh = new THREE.Mesh();
};
var Enemy = function(){};
Enemy.prototype = new Entity();
次のように記述されている場合、コードは正常に機能しますが、これにより、THREE が定義されていないというエラーが発生します。
var Entity = function() {
this.mesh = new THREE.Mesh();
};
var Enemy = function() {
this.mesh = new THREE.Mesh();
};
このようなプロトタイピングを使用して、同じ基本インターフェースを持ついくつかのタイプのエンティティを管理できるようにしたいと考えています。私も試したことがいくつかあります:
ドキュメントに基づいて、プロジェクト/、プロジェクト/クライアント/、プロジェクト/クライアント/互換性/、およびプロジェクト/lib/にthree.min.jsを配置してみました。THREE が定義されていない、または Meteor がクラッシュしたと表示されるたびに。
Three.js を呼び出す html ファイルでこれらのプロトタイプを定義します。
私の質問を明確にするために、Three.js をロードしてからすべてのタイプ ファイルをロードし、Meteor.startup() でクライアントを開始しようとするようにファイルを構造化する方法を誰かが提案できるかどうか疑問に思っています。現在のファイル構造は次のとおりです。
project/model.js
project/server/server.js
project/client/game.css
project/client/game.html
project/client/game.js
他に提供すべき情報があれば教えてください。キーワードを酷使しすぎていないことを願っています!