extends Area2D export var left=false const MOTION_SPEED=150 var motion = 0 var you_hidden=false onready var screen_size = get_viewport_rect().size #synchronize position and speed to the other peers slave func set_pos_and_motion(p_pos,p_motion): position = p_pos motion=p_motion func _hide_you_label(): you_hidden=true get_node("you").hide() func _process(delta): #is the master of the paddle if (is_network_master()): motion = 0 if (Input.is_action_pressed("move_up")): motion -= 1 elif (Input.is_action_pressed("move_down")): motion += 1 if (not you_hidden and motion!=0): _hide_you_label() motion*=MOTION_SPEED #using unreliable to make sure position is updated as fast as possible, even if one of the calls is dropped rpc_unreliable("set_pos_and_motion",position,motion) else: if (not you_hidden): _hide_you_label() translate( Vector2(0,motion*delta) ) # set screen limits if (position.y < 0 ): position.y = 0 elif (position.y > screen_size.y): position.y = screen_size.y func _ready(): set_process(true) func _on_paddle_area_enter( area ): if (is_network_master()): area.rpc("bounce",left,randf()) #random for new direction generated on each peer