0

次の問題があります。私は現在、Facebook 用のオンライン ゲームを開発しています。これは HTML5 キャンバスで作成されており、melonJS Javascript エンジンを使用しています。

突然、ゲーム オブジェクトが表示されなくなり、その理由もわかりました。エンジンは、各オブジェクトにフラグを設定し、このオブジェクトが表示されるかどうかを示します。したがって、エンジンはビューポート (長方形オブジェクトとして表される) にオブジェクト (長方形オブジェクトとしても表される) が含まれているかどうかをチェックします。

これは記述された関数のコードです ('this' はオブジェクト、'r' はこの場合のビューポートです):

/**
 * check if this rectangle is intersecting with the specified one
 * @param  {me.Rect} rect
 * @return {boolean} true if overlaps
 */
overlaps : function(r) {
return (this.left < r.right && r.left < this.right && this.top < r.bottom && r.top < this.bottom);
}

非常に奇妙に聞こえるかもしれませんが、何らかの理由で、この関数は「true」を返すべきなのに「false」を返します! しかし、これはエンジンのバグではなく、私のゲームのバグでもありません。このバグは、最新の Safari バージョン (Mac バージョンは不明、iPad では iOS6) でのみ発生します。

開発者コンソールが表示されている場合、何らかの理由でこのバグは表示されません。非表示の場合、バグはすぐに表示されます。

誰もこの問題を知っていますか?

4

1 に答える 1

0

それでも問題が解決しない場合は、melonJS イシュー トラッカー ( https://github.com/melonjs/melonJS/issues ) でバグ レポートを提出できます。

この質問がされてから変更されたコードに関連している可能性があります (melonJS 0.9.5 以降、「可視」と「ビューポート内」は別のものとして扱われるようになりました)。

于 2013-04-16T23:54:19.627 に答える