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