public void makePhysics(GameLevel level, double frameTimeLeft) {
		_lastCollision = null;
		LevelSegment currentCollision = null;
		// obliczenie jakie sily dzialaja na kulke, update wektorow ruchu i
		// pozycji
		calculateForces(level, frameTimeLeft);
		move(level.getBall(), frameTimeLeft);
		frameTimeLeft = 0;
		// wykrycie kolizji i reakcja na nie
		_tempCollisionableList = _colDetect.getCollisions(level
				.getCollisionable(), level.getBall());
		while (_tempCollisionableList.size() != 0) {
			while (_tempCollisionableList.size() != 0) {
				// cofniecie kulki, pamietac o tym ze zostal jeszcze czas w tej
				// klatce niewykorzystany
				collisionTime = returnToCollisionPlace(level.getBall(),
						_tempCollisionableList.get(0));
				currentCollision = _tempCollisionableList.get(0);
				frameTimeLeft += collisionTime;
				_tempCollisionableList = _colDetect.getCollisions(level
						.getCollisionable(), level.getBall());
				_tempCollisionableList.remove(_lastCollision);
			}
			if (currentCollision != null) {
				reactToCollision(currentCollision, level.getBall());
				_lastCollision = currentCollision;
				move(level.getBall(), frameTimeLeft);
				frameTimeLeft = 0;
			}
			_tempCollisionableList = _colDetect.getCollisions(level
					.getCollisionable(), level.getBall());
		}

	}