Jitter when moving camera over tileset map

Godot Version

4.1.3.stable

Question

Hi everyone!
I currently develop a game where the player moves a camera over a tilemap map to navigate. Unfortunatley as shown in the video below, the textures look weird when the camera is moving and I don’t know how to make them look sharp.

video: Library | Loom - 8 April 2024 | Loom

code of camera scene:

extends Camera2D

# Zoom variables
var min_zoom = Vector2(1, 1)
var max_zoom = Vector2(2, 2)
var desired_zoom = zoom
# Movement variables
var camera_speed = 2000
# Map boundaries
var min_x_pos = 0
var max_x_pos = 2560
var min_y_pos = 0
var max_y_pos = 1360


func _physics_process(delta):
	if global_position != get_camera_position(delta):
		global_position = get_camera_position(delta)
		var tween = create_tween()
		tween.tween_property(self, "global_position", get_camera_position(delta), .2)


func _unhandled_input(event):
	if event.is_action_pressed("zoom_in"):
		desired_zoom = zoom + Vector2(.25, .25)
		if desired_zoom <= max_zoom and desired_zoom >= min_zoom:
			var tween = create_tween()
			tween.tween_property(self, "zoom", desired_zoom, .08)
	elif event.is_action_pressed("zoom_out"):
		desired_zoom = zoom - Vector2(.25, .25)
		if desired_zoom <= max_zoom and desired_zoom >= min_zoom:
			var tween = create_tween()
			tween.tween_property(self, "zoom", desired_zoom, .08)


func get_camera_position(delta):
	var new_camera_position = global_position
	if Input.is_action_pressed("ui_right") and new_camera_position.x <= 1984:
		new_camera_position.x += camera_speed * delta
	if Input.is_action_pressed("ui_left") and new_camera_position.x >= 400:
		new_camera_position.x -= camera_speed * delta
	if Input.is_action_pressed("ui_up") and new_camera_position.y >= 292:
		new_camera_position.y -= camera_speed * delta
	if Input.is_action_pressed("ui_down") and new_camera_position.y <= 1068:
		new_camera_position.y += camera_speed * delta
	return new_camera_position

1 Like

I don’t really know how I fixed it, but the jitter is gone now. I just played around with position snapping and the position smoothing option of the camera. I know have position smoothing toggled on and it is working perfectly.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.