How to make a Scrollable image?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Irul
:warning: Old Version Published before Godot 3 was released.

How to make an image scrollable within viewport? My viewport is 1280x720 px and I want to show a large image that has 3000x3000 px dimension. My goal is the player will be able to drag the image up/down/left/right to view the rest of the image area. I want it work with touch since it’s a mobile game.

:bust_in_silhouette: Reply From: Zylann

I think you can do it with a Camera and a script that moves across the image (which would be a Sprite):

extends Camera


var _dragging = false


func _ready():
	set_process_input(true)


func _input(event):

	# Note: on mobile, Godot emulates mouse events,
	# so it should work on desktop too without changes.

	if event.type == InputEvent.MOUSE_BUTTON:
		_dragging = event.pressed

	elif event.type == InputEvent.MOUSE_MOVE and _dragging:
		var motion = Vector2(event.relative_x, event.relative_y)
		set_pos(get_pos() + motion)

Thanks a lot, it works!!

Irul | 2016-10-02 16:57