synchronized int doPhysics() {
		//hint: to change precision divide k_end by p and multiply  NdPos by p

		Vec NdPos = dPos.normalize();

		//k * NdPos =: tempVec
		int k = 0;
		int k_end = (int) (dPos.abs()+1.0f);


		Vec tempVec;



		boolean notThereYet = true;
		while (notThereYet) {
			tempVec = pos.add(NdPos);
			k++;						
			if (k == k_end) {
				notThereYet = false;				
			} else {
				Collision col = getCollision(tempVec, NdPos); //TODO: put that in last collission maybe...


				boolean mayMove = false;

				if (col.vertical()) { //dPos.y > 0   <=> jumping 
						NdPos.y = 0.0f;
						dPos.y = 0.0f; //brake as I'm on the floor
				} else
					mayMove = true;




				if (col.horizontal()) 					
					NdPos.x = 0.0f;					
				else
					mayMove = true;


				if (mayMove) 
					pos = pos.add(NdPos);
				else
					notThereYet = false;		

			} 



		}

		//if (colliding) 
		//pos = pos.add(NdPos.multiply(-3));
		return k - 1;
				

	}