draw(renderer, world) {
		// iterate through all cameras
		this.cameras.forEach((camera) => {
			// render the root container
			camera.draw(renderer, world);

			// render the ambient light
			if (this.ambientLight.alpha !== 0) {
				renderer.save();
				// iterate through all lights
				this.lights.forEach((light) => {
					// cut out all lights visible areas
					renderer.setMask(light.getVisibleArea(), true);
				});
				// fill the screen with the ambient color
				renderer.setColor(this.ambientLight);
				renderer.fillRect(0, 0, camera.width, camera.height);
				// clear all masks
				renderer.clearMask();
				renderer.restore();
			}

			// render all lights
			this.lights.forEach((light) => {
				light.preDraw(renderer, world);
				light.draw(renderer, world);
				light.postDraw(renderer, world);
			});
		});
	}
draw the current stage
@name draw
@memberof Stage
@ignore
@param {Renderer} renderer - the renderer object to draw with
@param {World} world - the world object to draw