diff --git a/src/gameobjects/container/Container.js b/src/gameobjects/container/Container.js index 39d246b24..83ecc0ad7 100644 --- a/src/gameobjects/container/Container.js +++ b/src/gameobjects/container/Container.js @@ -73,13 +73,7 @@ var Container = new Class({ tempMatrix.transformPoint(pointSrc.x, pointSrc.y, pointDst); return pointDst; - }, - - hasPoint: function (gameObject, point) - { - return false; } - }); module.exports = Container; diff --git a/src/gameobjects/container/ContainerCanvasRenderer.js b/src/gameobjects/container/ContainerCanvasRenderer.js index 3680683d1..8a692a7ca 100644 --- a/src/gameobjects/container/ContainerCanvasRenderer.js +++ b/src/gameobjects/container/ContainerCanvasRenderer.js @@ -1,12 +1,32 @@ var GameObject = require('../GameObject'); -var ContainerCanvasRenderer = function (renderer, src, interpolationPercentage, camera) +var ContainerCanvasRenderer = function (renderer, container, interpolationPercentage, camera, parentMatrix) { - if (GameObject.RENDER_MASK !== src.renderFlags || (src.cameraFilter > 0 && (src.cameraFilter & camera._id))) + if (GameObject.RENDER_MASK !== container.renderFlags || (container.cameraFilter > 0 && (container.cameraFilter & camera._id))) { return; } + var children = container.children; + var transformMatrix = container.localTransform; + + if (parentMatrix === undefined) + { + transformMatrix.applyITRS(container.x, container.y, container.rotation, container.scaleX, container.scaleY); + } + else + { + transformMatrix.loadIdentity(); + transformMatrix.multiply(parentMatrix); + transformMatrix.translate(container.x, container.y); + transformMatrix.rotate(container.rotation); + transformMatrix.scale(container.scaleX, container.scaleY); + } + + for (var index = 0; index < children.length; ++index) + { + children[index].renderCanvas(renderer, children[index], interpolationPercentage, camera, transformMatrix); + } }; module.exports = ContainerCanvasRenderer; \ No newline at end of file