私はAngularを使用するゲームでは、ユーザーインターフェイスのために取り組んでいます。ゲームコードには毎秒実行されるループがあります。 UIを同期させるために、私はAngularの外側から直接$ digestを呼び出しています。
//from angular code
angular
.module('app')
.factory('acp', acp);
acp.$inject = ['$rootScope', '$window'];
function acp($rootScope, $window){
var service = $window.ACP = {
heartBeat: heartBeat,
rootScope: $rootScope
};
return service;
function heartBeat(){
$rootScope.$$phase || $rootScope.$digest();
}
}
//from game code
setInterval(function(){
//do stuff within game
updateResources();
window.ACP.heartBeat();
}.bind(this), 1000);
単純なフロントエンドゲームでは、これは許されますか?私の角度uiとゲームコードの間のコミュニケーションのためのより良い方法を提案できますか?私はオブジェクトの参照と直接の性質の利便性が非常に好きなので、Angularとゲームコードの両方がウィンドウオブジェクトからまっすぐに消費される、私のゲームの状態を保持する別のグローバル変数を持っています。私はグローバルを使用して悪いジュジュを理解していますが、私は一度ゲームの領域に入るように感じる、ラインが少しぼやけることができます。アドバイスをいただければ幸いです。
$ windowをコントローラに挿入できますか?これは、グローバルウィンドウオブジェクトの周りにAngularラッパーオブジェクトを提供します。 – ThisClark
ええ、私は$ windowについて知っています。私はこの例を更新しました。ありがとうございました。 – loubeasley