Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

PoC for a zoomable map. personal opinion: I still would very much prefer to see the whole map.

you'll have to do everything needed to make it nice and working with mobile devices. I used the intro map as example, only two hotspots :)

in screen_mainUI.rpy (and place a "default zoomfactor = 1.0" somewhere)

screen localmap_ui():
    key "mousedown_4" action SetVariable("zoomfactor", If(zoomfactor<1, zoomfactor+0.1, 1))
    key "mousedown_5" action SetVariable("zoomfactor", If(zoomfactor>=0.1, zoomfactor-0.1, 0.1))
    # ..unchanged..
    if introfinished == False:
         viewport:
             at map_ui_ani
             xysize (config.screen_width, config.screen_height)
             child_size (int(3360*zoomfactor), int(1950*zoomfactor))
             xinitial 0.5 yinitial 0.5
             draggable True
             add "gui/akihabaramain.webp" zoom zoomfactor
             imagebutton:
                 auto "gui/mapicons/bedroom_%s.webp" at local_mappins_ani
                 pos (int(1625*zoomfactor), int(1200*zoomfactor))
                 idle_foreground Text("Bedroom", font="fonts/BarlowCondensed-SemiBold.ttf", size=25, xalign=0.5, ypos=70, text_align=0.5, outlines=[(1, "#000000", 0, 0)])
                 hover_foreground Text("Bedroom", font="fonts/BarlowCondensed-SemiBold.ttf", size=25, xalign=0.5, ypos=70, text_align=0.5, outlines=[(1, "#000000", 0, 0)])
                 action [ Play("sound", "audio/mainmenu_hover.mp3"), Hide("localmap_ui"), Hide("indoorfloorlevels"), Hide("indoorfloorrooms"), Hide("localmap_ui"), Jump("tampulabedroom") ]
             imagebutton:                 auto "gui/mapicons/hq_%s.webp" at local_mappins_ani                 pos (int(1710*zoomfactor),int(1075*zoomfactor))
                 idle_foreground Text("Headquarters", font="fonts/BarlowCondensed-SemiBold.ttf", size=25, xalign=0.5, ypos=70, text_align=0.5, outlines=[(1, "#000000", 0, 0)])
                 hover_foreground Text("Headquarters", font="fonts/BarlowCondensed-SemiBold.ttf", size=25, xalign=0.5, ypos=70, text_align=0.5, outlines=[(1, "#000000", 0, 0)])
                 action [ Play("sound", "audio/mainmenu_hover.mp3"), Hide("localmap_ui"), Hide("indoorfloorlevels"), Hide("indoorfloorrooms"), Hide("localmap_ui"), Jump("tampulaoffice") ]
    # ..etc etc..