I do not think it is moving faster, but rather it seems to be moving faster. I changed the script to use the label to print the distance between each movement, and it seems to be fixed around 3.3 no matter which way it is going. Here is the script I used:
extends Node
var speed = 200
var dir = 1
var last_position;
func _ready():
pass
func _process(delta):
var temp = get_node("Label").rect_position
var temp_size = get_node("Label").rect_size
last_position = temp;
temp.x += speed * dir * delta
if (temp.x < 0) or (temp.x > get_viewport().size.x - temp_size.x):
dir = -dir
temp.x += speed * dir * delta
get_node("Label").rect_position = temp
get_node("Label").text = str(last_position.x - temp.x).left(6);
I agree that it looks to be moving faster, but I think it is a illusion. The difference in positions does not seem to be changing from direction to direction. At least, that is what I gather from my testing :smile:
Edit: Also, I changed the script slightly so it does not go off screen so I could read the label the entire way. Feel free to remove it if you want