找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6730|回复: 1

[原创] 做了个立绘鉴赏系统

[复制链接]
发表于 2020-11-15 13:51:02 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 Manami 于 2020-11-16 20:46 编辑

原本是个提问帖,就在这个帖子里发吧。。。可以调整部件图像,可以拖放,,,完整代码如下,附件见此帖https://www.renpy.cn/forum.php?mod=viewthread&tid=654,理论上可以实现让多个层叠式图像同时显示来实现自定义场景

[RenPy] 纯文本查看 复制代码
default glasses_index = 1
default hair_index = 1
default shirt_index = 1
default pants_index = 1
default tie_index = 1

## 图片文件名未修改。
layeredimage someone_index: ## layeredimage语句,名:someone
    ## always语句
    always:
        "base" ## 身体(光身),底图。

    ## Group语句,相当于定义不同组件。
    group glasses: ## 定义不同【眼镜】。
        attribute glasses1 default: ## 指定默认【眼镜】(加了:default)
            "glasses[glasses_index]" ## 显示的是身体(光身)图,也就是无眼镜。

    group hair: ## 定义不同【头发】。
        attribute hair1 default: ## 此为默认【头发】(加了:default)
            "hair[hair_index]" ## 头发1 (默认)

    group shirt: ## 定义不同【衬衫】。
        attribute shirt1 default:
            "shirt[shirt_index]" ## 衬衫1(默认)

    group pants: ## 定义不同【裤子】。
        attribute pants1 default:
            "pants[pants_index]" ## 裤子1(默认)

    group tie: ## 定义不同【领带】。
        attribute tie1 default:
            "tie[tie_index]" ## 领带1
###############################################

screen Stand_navigation:
    frame:
        xysize(400,300)
        xpos 0
        ypos 0.4
        vbox:
            hbox: # 眼镜
                spacing 80
                text "眼镜"
                showif glasses_index != 1:
                    textbutton "<" action SetVariable('glasses_index', glasses_index - 1)
                text "[glasses_index]"
                if glasses_index != 4:
                    textbutton ">" action SetVariable('glasses_index', glasses_index + 1)
            hbox: # 头发
                spacing 80
                text "头发"
                showif hair_index != 1:
                    textbutton "<" action SetVariable('hair_index', hair_index - 1)
                text "[hair_index]"
                if hair_index != 7:
                    textbutton ">" action SetVariable('hair_index', hair_index + 1)
            hbox: # 衬衫
                spacing 80
                text "衬衫"
                showif shirt_index != 1:
                    textbutton "<" action SetVariable('shirt_index', shirt_index - 1)
                text "[shirt_index]"
                if shirt_index != 3:
                    textbutton ">" action SetVariable('shirt_index', shirt_index + 1)
            hbox: # 裤子
                spacing 80
                text "裤子"
                showif pants_index != 1:
                    textbutton "<" action SetVariable('pants_index', pants_index - 1)
                text "[pants_index]"
                if pants_index != 3:
                    textbutton ">" action SetVariable('pants_index', pants_index + 1)
            hbox: # 领带
                spacing 80
                text "领带"
                showif tie_index != 1:
                    textbutton "<" action SetVariable('tie_index', tie_index - 1)
                text "[tie_index]"
                if tie_index != 4:
                    textbutton ">" action SetVariable('tie_index', tie_index + 1)

screen Stand:
    tag menu
    use Stand_show
    use Stand_navigation
    key "mouseup_3" action Return()

screen Stand_show:

    draggroup:
        drag:
             # 调用图像
            add 'someone_index'

            # 若为False,其他Drag对象不能放在该Drag对象上。
            droppable True

            #若为True,draggable可以移出屏幕。
            drag_offscreen True

             # 人物图位置。
            xalign 0.5 yalign 0.5


screen navigation添加
[RenPy] 纯文本查看 复制代码
textbutton "Stand" action ShowMenu("Stand")


自问自答,原来是不同screen之间传递变量还有个函数,SetScreenVariable改成SetVariable就好了。。。
下面是原帖。。如何在screen中显示层叠式图像
想做一个立绘鉴赏的系统,参考了https://www.renpy.cn/forum.php?mod=viewthread&tid=654,在label里显示没有问题,但在screen中用add,image,imagemap都只能显示默认值的层叠式图像,glasses_index的值确实已经更改了,怎么才能让图像会变呢,
[RenPy] 纯文本查看 复制代码
default glasses_index = 1
layeredimage someone_index: ## layeredimage语句,名:someone
    ## always语句
    always:
        "base" ## 身体(光身),底图。

    ## Group语句,相当于定义不同组件。
    group glasses: ## 定义不同【眼镜】。
        attribute glasses1 default: ## 指定默认【眼镜】(加了:default)
            "glasses[glasses_index]" ## 显示的是身体(光身)图,也就是无眼镜。
screen Stand_navigation:

    frame:
        xysize(400,300)
        xpos 0
        ypos 0.4
        vbox:
            hbox: # 眼镜
                spacing 80
                text "眼镜"
                textbutton "<" action SetScreenVariable('glasses_index', glasses_index - 1)
                text "[glasses_index]"
                textbutton ">" action SetScreenVariable('glasses_index', glasses_index + 1)
screen Stand:
    tag menu

    use Stand_navigation

    add "someone_index" xalign 0.5 yalign 0.5

    key "mouseup_3" action Return()












评分

参与人数 2干货 +5 收起 理由
龙氏 + 2 鼓励原创!
BuErShen + 3 版区有你更精彩(*^_^*)

查看全部评分

发表于 2020-11-19 15:47:25 | 显示全部楼层
提问帖,如果自己找到解决方法,也采用回帖方式跟进。
现在成教程了,就直接移动到“经验教程”版块吧。
回复 支持 抱歉

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 23:56 , Processed in 0.079537 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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