RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 747|回复: 3

[教程] 一个画廊(Gallery)的简单的脚本模板

[复制链接]
发表于 2019-2-5 19:00:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 龙氏 于 2019-2-18 21:39 编辑

画廊(Gallery)也叫CG鉴赏哦。
新人喜欢套用脚本:调整尺寸、换换图片、改改脚本参数,就能运行起来 。。。确实省心省力,高效快捷

新年送给萌新们!

声明:素材图用的是游戏 fault - milestone one,仅是用于技术示例研究,不得用于非法目的或商业使用,后果自负啊。

画廊效果图:

fault - milestone one

fault - milestone one


第一步:写脚本,新人复制粘贴到 script.rpy(或者说替换里面的默认脚本代码)
[RenPy] 纯文本查看 复制代码
## 定义图片
## image语句:[url=https://www.renpy.cn/doc/quickstart.html?highlight=image#image]https://www.renpy.cn/doc/quickstart.html?highlight=image#image[/url]
## 注意文件格式 png 与 jpg 
image 1-1_cg :
    "gallery/1-1_cg.png"
    size (1280 ,720) ## 原图尺寸:1920*1080,改为:1280*720

image 1-2_cg :
    "gallery/1-2_cg.png"
    size (1280 ,720)

image 2-1_cg:
    "gallery/2-1_cg.png"
    size (1280 ,720)

image 2-2_cg :
    "gallery/2-2_cg.png"
    size (1280 ,720)

image 3-1_cg:
    "gallery/3-1_cg.jpg"
    size (1280 ,720)

image 3-2_cg :
    "gallery/3-2_cg.jpg"
    size (1280 ,720)

image 1-1_p = "gallery/1-1_p.png"
image 1-2_p = "gallery/1-2_p.png"

image 2-1_p = "gallery/2-1_p.png"
image 2-2_p = "gallery/2-2_p.png"

image 3-1_p = "gallery/3-1_p.png"
image 3-2_p = "gallery/3-2_p.png"

## 定义 未解锁缩略图
image locked :
    "gallery/locked.png"
    size (264 ,79) # 调整原图尺寸。

init python:
## 创建Gallery对象。
## 名为“g_cg”,名称可更改,但不能数字开头,更不能使用汉字。
    g_cg = Gallery() 

## 未解锁的图片,尺寸与CG缩略图相同。
    g_cg.locked_button = "locked" # 绝对路径图片。

## 在画廊中按钮和CG图像 unlock_image对应自动解锁CG图。
    g_cg.button("1-1") # 按钮的标识。
    g_cg.unlock_image("1-1_cg") # 该按钮对应的CG图片。

    g_cg.button("1-2")
    g_cg.unlock_image("1-2_cg")


    g_cg.button("2-1")
    g_cg.unlock_image("2-1_cg")


    g_cg.button("2-2")
    g_cg.unlock_image("2-2_cg")


    g_cg.button("3-1")
    g_cg.unlock_image("3-1_cg")


    g_cg.button("3-2")
    g_cg.unlock_image("3-2_cg")

## 创建 画廊界面(screen)
screen gallery:

## # 确保任何其他菜单界面都会被替换。
    tag menu

## 背景图。
    add "gallery/back.jpg"

## 创建 vbox布局参考。具体参考文档:[url=https://www.renpy.cn/doc/displayables.html?highlight=vbox#VBox]https://www.renpy.cn/doc/displayables.html?highlight=vbox#VBox[/url]
    vbox: # 框体内成员布局顺序从上到下。
        xalign 0.5
        yalign 0.5
        spacing 120 # 方框(box)样式特性,方块内成员之间的空间距离,单位为像素。

## 调用make_button
## 关于make_button,参考中文文档:[url=https://www.renpy.cn/doc/rooms.html?highlight=make_button#Gallery.make_button]https://www.renpy.cn/doc/rooms.h ... Gallery.make_button[/url]
        hbox: # 框体内成员布局顺序从左到右,与vbox相反,都是用来结构布局。
            spacing 100
            add g_cg.make_button("1-1", "1-1_p", xalign=0.5, yalign=0.5) # "1-1_p.png"是"1-1_cg"缩略图。
            add g_cg.make_button("1-2", "1-2_p", xalign=0.5, yalign=0.5)

        hbox:
            spacing 100
            add g_cg.make_button("2-1", "2-1_p", xalign=0.5, yalign=0.5)
            add g_cg.make_button("2-2", "2-2_p", xalign=0.5, yalign=0.5)

        hbox:
            spacing 100
            add g_cg.make_button("3-1", "3-1_p", xalign=0.5, yalign=0.5)
            add g_cg.make_button("3-2", "3-2_p", xalign=0.5, yalign=0.5)

## 可以继续增加,不过需要调整布局以及 spacing间距了。

## 返回键
    textbutton "返回" action Return() xalign 0.9 yalign 0.9

# 游戏在此开始。
label start:

    scene 2-2_cg
    "显示:2-2_cg 图片,这时返回“画廊”,相应CG自动解锁。"

    show 3-2_cg
    "显示:3-2_cg 图片"

    "注意工程测试时,“删除持久化数据”,图片才恢复锁定。"
    "renpy文档中关于:{a=https://www.renpy.cn/doc/persistent.html}持久化数据{/a}"

    # 此处为游戏结尾。
    return

第二步,修改菜单:
[RenPy] 纯文本查看 复制代码
# 在screens.rpy脚本文件里搜索

        if renpy.variant("pc"):# 搜索此句,定位到这位置
            textbutton _("画廊") action ShowMenu("gallery") # 添加这句

第三步:图片放进去,工程的game目录里。
gallery.part1.rar (1 MB, 下载次数: 7)

评分

参与人数 1干货 +1 收起 理由
BuErShen + 1 感谢分享!

查看全部评分

发表于 2019-2-7 19:02:51 | 显示全部楼层
可以可以
回复

使用道具 举报

发表于 2019-7-23 22:45:44 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2019-9-16 18:44:49 | 显示全部楼层
学习学习
学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号 | 苏公网安备 32092302000068号 )

GMT+8, 2019-11-20 22:56 , Processed in 0.074119 second(s), 27 queries , File On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表