Smooth screen scrolling?

Hello guys,

I cannot figure out how to move from here, I kind of placed myself in a bad position…

Right now when moving in my game it moves with 1 tile per move, The tiles are 64*64 so it looks realy stupid when i want smooth movement. What i mean with smooth movement is that i want my map to be able to draw a half tile and not only whole tiles.

Here is my current code:


	public void drawLevel(Graphics g2d, int screenX, int screenY){
		drawX = 0; //X cordinate for the map to draw at
		drawY = 0; //Y Cordinate for the map to draw at
		
		for(int y = screenY; y < screenY + 10; y++, drawY += 63){
			for(int x = screenX; x < screenX + 13; x++, drawX += 63){
				switch(level1[x][y]){
				case 1: 
					g2d.drawImage(grass, drawX, drawY, grass.getWidth() * imageScale, grass.getHeight() * imageScale, null);
					break;
				case 2:
					g2d.drawImage(water, drawX, drawY, water.getWidth() * imageScale, water.getHeight() * imageScale, null);
					break;
				case 0:
					g2d.drawImage(temp, drawX, drawY, temp.getWidth() * imageScale, temp.getHeight() * imageScale, null);
					break;
				}
			}
			drawX = 0; //Resets the X cord to draw at for the next line
		}
	}

The screenX and screenY is incremented using screenX++; in the player move methods.
the scrolling is working but i just cannot figure out how to make the scrolling smooth and not only moving tile per tile.

I thought of change it all to floats but wouldn’t that mess with my 2D array?
Also i cannot draw the whole array since its a big map of 500 tiles so i need to draw only whats on the screen.