次の問題があります。私は現在、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) でのみ発生します。
開発者コンソールが表示されている場合、何らかの理由でこのバグは表示されません。非表示の場合、バグはすぐに表示されます。
誰もこの問題を知っていますか?