+1 vote

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.

in Engine by (35 points)

1 Answer

0 votes

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)
by (27,897 points)

Thanks a lot, it works!!

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.