Détection de collision avec de nombreux objets

Je me suis concentré principalement sur les aspects Graphiques pour créer un peu 2DGame. J'ai regardé/a regardé plusieurs tutos mais aucun d'entre eux ont été que plus agréable. J'ai déjà un joueur(un carré) déplacement et d'entrer en collision avec d'autres carrés sur l'écran. La gravité etc. Sont également effectués.

S'il y a seulement que beaucoup d'objets comme on le voit sur l'écran (30*20), tout fonctionne parfaitement bien. Mais si je l'augmenter à disons 300*300 le programme commence à courir très lent car il doit vérifier si de nombreux objets.

Vraiment, je ne comprends pas comment des jeux comme Minecraft peut travailler avec TOUS les blocs et mon programme donne déjà sur 300*300 blocs.

J'ai déjà essayé de SEULEMENT vérifier les collisions lorsque les objets sont visibles, mais qui conduit le programme de vérification de chaque objet pour la visibilité de pointe pour le même problème.
Ce que je fais mal? Aide appréciée.

Je vais poster quelques code qui me permet de gérer les collisions.

player.collision(player, wall);

public void collision(Tile object1, Tile[] object2){
    collisionCheckUp(object1, object2);
    collisionCheckDown(object1, object2);
    collisionCheckLeft(object1, object2);
    collisionCheckRight(object1, object2);  
}

public void collisionCheckDown(Tile object1, Tile[] object2){

    for (int i = 0; i < Map.tileAmount; i++){
        if(object2[i] != null && object2[i].visible)
        {
            if(object1.isCollidingDown(object2[i])){
                object1.collisionDown = true;
                return;
            }

        }
    }       
    object1.collisionDown = false;
}

public void compileHullDown(){

     collisionHull = new Rectangle((int)x+3, (int)y+3, width-6, height);
}

int wallCount = 0;
    for (int x=0;x<Map.WIDTH;x++) {
        for (int y=0;y<Map.HEIGHT;y++) {

            if (Map.data[x][y] == Map.BLOCKED) {
                wall[wallCount] = new Tile(x * Map.TILE_SIZE, y *  Map.TILE_SIZE);
                wallCount++;
            }
        }
    }

source d'informationauteur Gjallar