protected boolean checkCollisionWithTile(float delta) {
		Rectangle objRect = rectPool.obtain();
		objRect.set(getBounds().x, getBounds().y, getBounds().width, getBounds().height);
		int startX, endX, startY, endY;
		boolean collide = false;

		getVitesse().scl(delta);
		/*
		 * Collision sur Y
		 * on deplace le carre avant de deplacer le perso pour tester
		 */
		startX = (int) getBounds().x;
		endX = (int) (getBounds().x + getBounds().width);
		//la on verifie si le perso descend alors on effectue le truc avant le ?
		//sinon apre le ?
		startY = endY = (getVitesse().y < 0) ? (int) Math.floor(getBounds().y + getVitesse().y) : 
								(int) Math.floor(getBounds().y + getBounds().height + getVitesse().y);
		
		getTileCollisionPossible(startX, startY, endX, endY);
		
		// Simuler d�placement sur Y
		objRect.y += getVitesse().y;
		for (Tile block : rechercheTileCollisionPossible()) {
			if (objRect.overlaps(block.getBounds())) {
				if (getVitesse().y < 0) {
					getPosition().y = block.getPosition().y+1;
					grounded = true;
				}
				collide = true;
				getVitesse().y = 0;
				break;
			}
		}
		objRect.y = getPosition().y;
				
		/*
		 * Collision sur X
		 */
		startY = (int) getBounds().y;
		endY = (int) (getBounds().y + getBounds().height);
		startX = endX = (getVitesse().x < 0) ? (int) Math.floor(getBounds().x + getVitesse().x) :
							(int) Math.floor(getBounds().x + getBounds().width + getVitesse().x);
		getTileCollisionPossible(startX, startY, endX, endY);

		// Simuler d�placement sur X
		objRect.x += getVitesse().x;
		for (Tile block : rechercheTileCollisionPossible()) {
			if (objRect.overlaps(block.getBounds())) {
				getPosition().x = (getVitesse().x > 0) ? block.getPosition().x-SIZE : block.getPosition().x+1;
				getVitesse().x = 0;
				collide = true;
				break;
			}
		}
		objRect.x = getPosition().x;
		
		getVitesse().scl(1 / delta);
		rectPool.free(objRect);
		return collide;
	}