For example, this code works fairly well (after editing gui.rpy line 52) but there's still some issues with it - such as I have 12 images and only 9 display. The "next / previous" buttons won't show in the new GUI (works fine in legacy GUI)
Code: Select all
#CG Gallery
init-1:
image bg sc01 = "01.png"
image bg sc02 = "bf27888.jpg"
image bg sc03 = "c099f80.jpg"
image bg sc04 = "f7d7b0e.jpg"
image bg sc05 = "105320c.jpg"
image bg sc06 = "cf24501.jpg"
image bg sc07 = "538adc8.jpg"
image bg sc08 = "1c56479.jpg"
image bg sc09 = "ae34943.jpg"
image bg sc10 = "20420d5.jpg"
image bg sc11 = "9796f4a78d.jpg"
image bg sc12 = "2fXx6.jpg"
init python:
#Galleries settings - start
#list the CG gallery images here:
gallery_cg_items = ["bg sc01", "bg sc02", "bg sc03", "bg sc04", "bg sc05", "bg sc06", "bg sc07", "bg sc08", "bg sc09", "bg sc10", "bg sc11", "bg sc12"]
#how many rows and columns in the gallery screens?
gal_rows = 3
gal_cols = 3
#thumbnail size in pixels:
thumbnail_x = 150
thumbnail_y = 130
#the setting above (267x150) will work well with 16:9 screen ratio. Make sure to adjust it, if your are using 4:3 or something else.
#Galleries settings - end
gal_cells = gal_rows * gal_cols
g_cg = Gallery()
for gal_item in gallery_cg_items:
g_cg.button(gal_item + " butt")
g_cg.image(gal_item)
g_cg.unlock(gal_item)
g_cg.transition = fade
cg_page=0
init +1 python:
#Here we create the thumbnails. We use a special "locked" image for CGs to prevent spoilers.
for gal_item in gallery_cg_items:
renpy.image (gal_item + " butt", im.Scale(ImageReference(gal_item), thumbnail_x, thumbnail_y))
screen cg_gallery():
tag menu
use game_menu(_("Image Gallery"), scroll="viewport"):
grid gal_rows gal_cols:
spacing 50
$ i = 0
$ next_cg_page = cg_page + 1
if next_cg_page > int(len(gallery_cg_items)/gal_cells):
$ next_cg_page = 0
for gal_item in gallery_cg_items:
$ i += 1
if i <= (cg_page+1)*gal_cells and i>cg_page*gal_cells:
add g_cg.make_button(gal_item + " butt", gal_item + " butt", im.Scale("gallocked.png", thumbnail_x, thumbnail_y), xalign=0.5, yalign=0.5, idle_border=None, background=None, bottom_margin=24)
for j in range(i, (cg_page+1)*gal_cells): #we need this to fully fill the grid
null
frame:
xpos 0
ypos 150
has vbox:
if len(gallery_cg_items)>gal_cells:
textbutton _("Next Page") action [SetVariable('cg_page', next_cg_page), ShowMenu("cg_gallery")]
My buttons never "unlock"
Originally, my issue was the buttons were always unlocked, so I looked into the code a bit, made some revisions and now I'm stuck where I am.
Can anyone point out what I am missing / interpreted incorrectly from the documentation.
In the navigation screen I added
Code: Select all
textbutton _("Gallery") action ShowMenu("cg")
textbutton _("Backgrounds") action ShowMenu("bg")
Code: Select all
# The script of the game goes in this file.
# Declare characters used by this game. The color argument colorizes the
# name of the character.
define e = Character("Eileen")
image image1 = "a.png"
image image2 = "b.png"
# The game starts here.
label start:
# Show a background. This uses a placeholder by default, but you can
# add a file (named either "bg room.png" or "bg room.jpg") to the
# images directory to show it.
scene bg room
# This shows a character sprite. A placeholder is used, but you can
# replace it by adding a file named "eileen happy.png" to the images
# directory.
show eileen happy
# These display lines of dialogue.
"Hello, world."
show image1
e "You've created a new Ren'Py game."
show image2
e "Once you add a story, pictures, and music, you can release it to the world!"
# This ends the game.
return
Code: Select all
####################
## Gallery screen ##
####################
init python:
g = Gallery()
g.button("a")
g.unlock("a.png")
g.button("b")
g.unlock_image("b.png")
g.transition = dissolve
image unlock scaled = im.Scale("a.png", 192, 108, bilinear=True)
image b scaled = im.Scale("b.png", 192, 108, bilinear=True)
#make this using im.scale later
define lock = "gui/button/locked.png"
screen cg():
tag menu
use gallery(_("CG Gallery"))
screen bg():
tag menu
use gallery(_("Background Gallery"))
screen gallery(title):
use game_menu(title):
if renpy.get_screen("cg"):
vpgrid:
cols 3
xfill True
yfill True
draggable False
add g.make_button("a", "unlock scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("a", "unlock scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("a", "unlock scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("b", "b scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("b", "b scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("b", "b scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("a", "unlock scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("b", "b scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("a", "unlock scaled", "[lock]", xalign=0.5, yalign=0.5)
elif renpy.get_screen("bg"):
vpgrid:
cols 3
xfill True
yfill True
draggable False
add g.make_button("a", "unlock scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("a", "unlock scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("a", "unlock scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("b", "b scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("b", "b scaled", "[lock]", xalign=0.5, yalign=0.5)
add g.make_button("b", "b scaled", "[lock]", xalign=0.5, yalign=0.5)