Salve sto seguendo vari tutorial della libreria Libgdx per creare giochi Java su Android e Desktop ma vedo che sono complicati in quanto fanno riferimento molte volte agli stessi elementi confondendomi le idee...la mia domanda semplice è che funzione ha il costruttore scritto dopo il commento //------------- nella classe WorldRender, questo è il codice java:

codice:
package com.pierfra.platformGame.view;
import com.pierfra.platformGame.model.Block;
import com.pierfra.platformGame.model.Bob;
import com.pierfra.platformGame.model.World;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.math.Rectangle;


public class WorldRenderer {
//1 - Variabili "World" e "OrthographicCamera"
	private World world;
	private OrthographicCamera cam;
	
    /** for debug rendering **/
	ShapeRenderer debugRenderer = new ShapeRenderer();

        //-------------
	public WorldRenderer(World world) {
		this.world = world;
		this.cam = new OrthographicCamera(10, 7); /* inizializza la grandezza della camera (10 unità X 7 unità).*/
		this.cam.position.set(5, 3.5f, 0); /* posiziona la camera che per default punterebbe a (0;0) verso (5 ; 3.5f). 3,5f= metà di 7, la grandezza della camera per trovare il centro */
		this.cam.update();
	}


	public void render() {
		// render blocks
		debugRenderer.setProjectionMatrix(cam.combined);/* Sintassi essenziale per il rendering (con debug) degli oggetti nel gioco tramite camera. */
		debugRenderer.begin(ShapeType.Line);
		for (Block block : world.getBlocks()) {
			Rectangle rect = block.getBounds();
			float x1 = block.getPosition().x + rect.x;
			float y1 = block.getPosition().y + rect.y;
			debugRenderer.setColor(new Color(1, 0, 0, 1));
			debugRenderer.rect(x1, y1, rect.width, rect.height);
		}
		// render Bob
		Bob bob = world.getBob();
		Rectangle rect = bob.getBounds();
		float x1 = bob.getPosition().x + rect.x;
		float y1 = bob.getPosition().y + rect.y;
		debugRenderer.setColor(new Color(0, 1, 0, 1));
		debugRenderer.rect(x1, y1, rect.width, rect.height);
		debugRenderer.end();
	}
}
La classe World:
codice:
package com.pierfra.platformGame.model;


import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array;
	 
	public class World {
 
	    /** The blocks making up the world **/
	    Array blocks = new Array();
	    /** Our player controlled hero **/
	    Bob bob;
	 
	    // Getters -----------
	    public Array getBlocks() {
	        return blocks;
	    }
	    public Bob getBob() {
	        return bob;
	    }
	    // --------------------
	 
	    public World() {
	        createDemoWorld();
	    }
	 
	    private void createDemoWorld() {
	        bob = new Bob(new Vector2(7, 2));
	 
	        for (int i = 0; i < 10; i++) {                      
	        	blocks.add(new Block(new Vector2(i, 0)));                   
	        	blocks.add(new Block(new Vector2(i, 7)));                      
	        	if (i > 2)
	                blocks.add(new Block(new Vector2(i, 1)));
	        }
	        blocks.add(new Block(new Vector2(9, 2)));
	        blocks.add(new Block(new Vector2(9, 3)));
	        blocks.add(new Block(new Vector2(9, 4)));
	        blocks.add(new Block(new Vector2(9, 5)));
	 
	        blocks.add(new Block(new Vector2(6, 3)));
	        blocks.add(new Block(new Vector2(6, 4)));
	        blocks.add(new Block(new Vector2(6, 5)));
	    }
	}
Considerando che ci sono varie classe pubbliche come "Bob" che è il personaggio principale e "blocks" che sono i blocchi del terreno nel gioco, con la classe "world" che li racchiude tutti, vorrei capire la funzione di "public WorldRenderer(World world) {" cioè perchè si utilizza questa sintassi per inizializzare la "camera" sul gioco? Ho tante idee e vorrei riuscire a sviluppare un gioco 2d ma alcune volte mi blocco sulla sintassi per capirne il funzionamento.
Grazie